Андрей, в вашем примере вы меняете цену у переменной $p (я так понимаю это products) и там у вас $cur_out = $p['currency'] и это неправильно, вы сами же пишете что так работает неправильно.
Одно моё сообщение лишь дополняет другое. Противоречий нет.
Для элементов products $cur_out = основная валюта Для элементов skus $cur_out = та цена, которая указана для соответствующего элемента в products в ключе currency
А про $cur_in я уже достаточно подробно написал выше.
Игорь, есть такая проблема, но это всё же довольно сомнительный случай, когда округление стоит до 10 долларов, и цена меняется на 1 доллар... Но постараемся что-то с этим сделать, почему так происходит с технической точки зрения понятно.
Андрей, неправильно, я же написал вам выше. Вы просто задайте цену в долларах, а выводите в рублях и проверьте в карточке товара, в списке (в категории) и в корзине. Валюта из которой переводить хранится либо в unconverted_currency либо если такого ключа нет просто в currency в массиве products. Валюта в которую переводить указана в currency в массиве products.
Андрей, да. Но переводить нужно для products в основную валюту. А для skus в валюту, которая указана в currency для товара в массиве products. В карточке товара из-за округления цен пришлось давно еще сделать хак, чтобы не пришлось менять сильно темы дизайна. И потому, из какой валюты (то есть той, в которой сохранены ваши цены) переводить нужно получать либо из unconverted_currency, а если такого ключа нет, то просто из currency.
Про купить в 1 клик, как мне кажется, учитывая что вы обходите корзину, правильнее просто в плагине кидать событие frontend_products, передавая туда массив товаров и артикулов, аналогично тому как это делается в корзине.
Про остальные я не совсем понимаю как вам там приходится работать с обработанными товарами, если вы про вычисление скидки, то в том событии уже передаётся вся информация о товарах и артикулах.
В связи с введением настройки Максимальная скидка % от суммы заказа для партнёрской программы, темы всё же пришлось немного тронуть. Вот на примере темы Default: https://github.com/webasyst/shop-script/commit/a80...
Андрей, вы делаете импорт из CSV? При этом вы сопоставляете колонки плагина колонкам в файле? Но ничего не приходит? Хук product_custom_fields сделан именно для импорта в данный момент. Больше он нигде пока не вызывается.
Андей, прямо в посте есть пример для поля field1 которое объявлено для товара (product), для sku аналогично, только оно уже будет в ['skus'][SKU_ID]['debug_plugin']
if (isset($params['data']['debug_plugin']['field1'])) {//'Custom field#1'
//TODO update field at plugin table/run some code/etc
}
Сохранять куда-то в свои таблицы. Насчёт записи перебором я не совмем понял о чём вы. В большинстве случаев это будет UPDATE, а UPDATE это всё равно отдельный запрос для каждой строчки в любом случае. По другому никак.
Отправляйте на модерацию, но помните про наши прошлые замечания и постарайтесь сделать так, чтобы в этом хуке было минимум SQL-запросов. В идеале 1-2 запроса, максимум. Можно использовать SELECT * FROM {TABLE} WHERE product_id IN (...) И держите в голове, что хук этот может вызываться по нескольку раз на одной странице (для разных наборов товаров), то есть часть информации (ту же категорию покупателя) можно кэшировать в runtime в static переменной плагина, например.
По админ части претензий насколько я помню не было, хотя сейчас там тоже можно упростить, в прошлом обновлении появился хук backend_product_sku_settings, скорее всего он будет вам полезен.
Ну и не забудьте в requirements.php указать требование версии 6.3
Дмитрий, не могли бы вы рассказать зачем вам нужен поиск по трек-коду? Просто интересно в какой такой ситуации у вас есть трек-код, но нет номера заказа?
Андрей, это будет на вашей совести :) Формально через этот хук можно довольно легко сломать внешний вид магазина, но без него невозможно сделать очень многие вещи, в том числе оптовые цены. Ну а если серьёзно, то зачем? Мы за этим будем следить на этапе модерации. Такое писать туда нельзя, т.к. эти цены используется и в корзине, где это преобразуется в 0 и можно будет оформить заказ с ценой 0.
А зачем вы ставите галочку "недоступен для заказа" для артикула? Что мешает просто настроить, что нельзя купить товары, которых нет в наличии. Тогда при остатке 0 в фильтрах такие товары будут показываться, но купить их будет нельзя.
Сделано это было после очень многочисленных просьб владельцев магазинов, чтобы при фильтрации не было того, что недоступно для заказа или чего вообще нет.
Нет такого условия. Наличие проверяется только если установлена соответствующая настройка. Добавилось другое условие: что при фильтрации в выдачу не попадают товары, артикулы которых недоступны для заказа (галочка в параметрах артикула). То есть например если есть товар и у него два артикула: красный и зелёный Если в фильтрах выбран красный, но при этом артикул красный недоступен для заказа (это отдельная галочка, никак не связанная с наличием), то этот товар не будет показан в результатах, что логично, т.к. заказать его всё равно нельзя.
Евгений, где написано про запрет отключать ссылку через админку? Наоборот, написано, что можно это вынести в настройки темы дизайна:
опцию отключения в настройках сделать можно
Хорошее решение для разработчика темы дизайна: сделать настройку "подпись в футере", просто по умолчанию там выводить "Сделано на основе Shop-Script", которую клиент при желании может легко поменять на нужный ему текст или вообще удалить.
Ирина, такие товары скрываются автоматом, если вы открыли ссылку, о которой написано в посте. Так что ничего фильтроваться не будет. Но это в том случае, если у вас артикулы на основе характеристик.
Зачем? Если просто поиграться и посмотреть, можете создать аккаунт в облаке и поиграться. Если же использовать, покупайте лицензию и получите код.
Почему же тогда Shop-Script и хаб выложены? У файлов и задач нет фронтенда, и вероятность того, что многие будут просто бесплатно для себя пользоваться этими приложениями, взяв код с гитхаба, намного выше чем у магазина и хаба.
Вы же не спрашиваете у сторонних разработчиков, почему они не выкладывают на гитхаб свои платные продукты...
Ну если цена зависит, например, от витрины, а товары вы получаете в бэкенде сами, то вам нужно самостоятельно вызвать событие frontend_products
Но чтобы плагины видели нужную витрину, перед этим нужно сделать хак указав нужный домен и правило поселения.
Тут вам поможет вызов:
в ответ на Получить цену товара из бекэнда для определенной витрины
Смотря что вы подразумеваете под фразой "из бэкенда".
В своём плагине можно.
в ответ на Получить цену товара из бекэнда для определенной витрины
Смотря как и кем реализован экспорт, например, плагины скидок давно умеют выгружать в Яндекс.Маркет цены со скидками.
в ответ на Получить цену товара из бекэнда для определенной витрины
Слово frontend в названии хука намекает на то, что это работает только на витрине.
в ответ на Получить цену товара из бекэнда для определенной витрины
Вот и появились первые плагины:
Разные цены для разных витрин
Мульти цены (Оптовые цены)
Оптовые цены
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Николай, это было исправлено в последнем обновлении.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андрей, в вашем примере вы меняете цену у переменной $p (я так понимаю это products) и там у вас $cur_out = $p['currency'] и это неправильно, вы сами же пишете что так работает неправильно.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Одно моё сообщение лишь дополняет другое. Противоречий нет.
Для элементов products $cur_out = основная валюта
Для элементов skus $cur_out = та цена, которая указана для соответствующего элемента в products в ключе currency
А про $cur_in я уже достаточно подробно написал выше.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Игорь, есть такая проблема, но это всё же довольно сомнительный случай, когда округление стоит до 10 долларов, и цена меняется на 1 доллар...
Но постараемся что-то с этим сделать, почему так происходит с технической точки зрения понятно.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андрей, неправильно, я же написал вам выше.
Вы просто задайте цену в долларах, а выводите в рублях и проверьте в карточке товара, в списке (в категории) и в корзине.
Валюта из которой переводить хранится либо в unconverted_currency либо если такого ключа нет просто в currency в массиве products.
Валюта в которую переводить указана в currency в массиве products.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андрей, да.
Но переводить нужно для products в основную валюту.
А для skus в валюту, которая указана в currency для товара в массиве products.
В карточке товара из-за округления цен пришлось давно еще сделать хак, чтобы не пришлось менять сильно темы дизайна.
И потому, из какой валюты (то есть той, в которой сохранены ваши цены) переводить нужно получать либо из unconverted_currency, а если такого ключа нет, то просто из currency.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Про купить в 1 клик, как мне кажется, учитывая что вы обходите корзину, правильнее просто в плагине кидать событие frontend_products, передавая туда массив товаров и артикулов, аналогично тому как это делается в корзине.
Про остальные я не совсем понимаю как вам там приходится работать с обработанными товарами, если вы про вычисление скидки, то в том событии уже передаётся вся информация о товарах и артикулах.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Да, будут, как и все.
В случае, если появится острая необходимость выпустить обновление, пишите запрос в техподдержку.
в ответ на Проверка и публикация в праздники
В связи с введением настройки Максимальная скидка % от суммы заказа для партнёрской программы, темы всё же пришлось немного тронуть.
Вот на примере темы Default:
https://github.com/webasyst/shop-script/commit/a80...
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андрей, спасибо за дельное замечание, добавили хук product_sku_delete, который вызывается при удалении отдельного артикула.
Сергей, исправили.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Николай, в версии 6.3, которая появится уже на этой неделе, в настройках скидки появится настройка, позволяющая это отключить.
в ответ на Обновление Shop-Script 6.2.1
Андрей, вы делаете импорт из CSV?
При этом вы сопоставляете колонки плагина колонкам в файле? Но ничего не приходит?
Хук product_custom_fields сделан именно для импорта в данный момент.
Больше он нигде пока не вызывается.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андей, прямо в посте есть пример для поля field1 которое объявлено для товара (product), для sku аналогично, только оно уже будет в ['skus'][SKU_ID]['debug_plugin']
Сохранять куда-то в свои таблицы.
Насчёт записи перебором я не совмем понял о чём вы. В большинстве случаев это будет UPDATE, а UPDATE это всё равно отдельный запрос для каждой строчки в любом случае. По другому никак.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Отправляйте на модерацию, но помните про наши прошлые замечания и постарайтесь сделать так, чтобы в этом хуке было минимум SQL-запросов.
В идеале 1-2 запроса, максимум. Можно использовать SELECT * FROM {TABLE} WHERE product_id IN (...)
И держите в голове, что хук этот может вызываться по нескольку раз на одной странице (для разных наборов товаров), то есть часть информации (ту же категорию покупателя) можно кэшировать в runtime в static переменной плагина, например.
По админ части претензий насколько я помню не было, хотя сейчас там тоже можно упростить, в прошлом обновлении появился хук backend_product_sku_settings, скорее всего он будет вам полезен.
Ну и не забудьте в requirements.php указать требование версии 6.3
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Дмитрий, не могли бы вы рассказать зачем вам нужен поиск по трек-коду?
Просто интересно в какой такой ситуации у вас есть трек-код, но нет номера заказа?
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Андрей, это будет на вашей совести :)
Формально через этот хук можно довольно легко сломать внешний вид магазина, но без него невозможно сделать очень многие вещи, в том числе оптовые цены.
Ну а если серьёзно, то зачем? Мы за этим будем следить на этапе модерации.
Такое писать туда нельзя, т.к. эти цены используется и в корзине, где это преобразуется в 0 и можно будет оформить заказ с ценой 0.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
В темах ничего менять не нужно.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Alex Kurd, в хуке frontend_products можно и название товаров менять.
в ответ на Разработчикам о предстоящем обновлении Shop-Script 6.3
Не показываются только товары, артикулы которых недоступны для заказа.
Всё остальное работает в соответствии с настройкой поселения.
Если у вас не так, то присылайте скриншоты. И лучше наверное в пишите в техподдержку, а не сюда.
в ответ на Обновление Shop-Script 6.2.1
А зачем вы ставите галочку "недоступен для заказа" для артикула?
Что мешает просто настроить, что нельзя купить товары, которых нет в наличии.
Тогда при остатке 0 в фильтрах такие товары будут показываться, но купить их будет нельзя.
Сделано это было после очень многочисленных просьб владельцев магазинов, чтобы при фильтрации не было того, что недоступно для заказа или чего вообще нет.
в ответ на Обновление Shop-Script 6.2.1
Нет такого условия. Наличие проверяется только если установлена соответствующая настройка.
Добавилось другое условие: что при фильтрации в выдачу не попадают товары, артикулы которых недоступны для заказа (галочка в параметрах артикула).
То есть например если есть товар и у него два артикула: красный и зелёный
Если в фильтрах выбран красный, но при этом артикул красный недоступен для заказа (это отдельная галочка, никак не связанная с наличием), то этот товар не будет показан в результатах, что логично, т.к. заказать его всё равно нельзя.
в ответ на Обновление Shop-Script 6.2.1
Евгений, где написано про запрет отключать ссылку через админку?
Наоборот, написано, что можно это вынести в настройки темы дизайна:
Хорошее решение для разработчика темы дизайна: сделать настройку "подпись в футере", просто по умолчанию там выводить "Сделано на основе Shop-Script", которую клиент при желании может легко поменять на нужный ему текст или вообще удалить.
в ответ на Сделано на основе Shop-Script
Ирина, такие товары скрываются автоматом, если вы открыли ссылку, о которой написано в посте.
Так что ничего фильтроваться не будет.
Но это в том случае, если у вас артикулы на основе характеристик.
в ответ на Обновление Shop-Script 6.2.1
Сергей, вам лично дал доступ на mailer.
в ответ на Файлы и Задачи для разработчиков на GitHub
Зачем? Если просто поиграться и посмотреть, можете создать аккаунт в облаке и поиграться.
Если же использовать, покупайте лицензию и получите код.
Почему же тогда Shop-Script и хаб выложены?
У файлов и задач нет фронтенда, и вероятность того, что многие будут просто бесплатно для себя пользоваться этими приложениями, взяв код с гитхаба, намного выше чем у магазина и хаба.
Вы же не спрашиваете у сторонних разработчиков, почему они не выкладывают на гитхаб свои платные продукты...
в ответ на Файлы и Задачи для разработчиков на GitHub