1b.app
Скопійоване посилання -

Не працює коректно дія "Створити продукт із процесу на підставі додаткових полів продукту процесу"

Відповіді:

Добрий день. Потрібно передавати id бренду, а не його назву. Якщо вам потрібно передавати назву та шукати чи створювати бренд за назвою можна доопрацювати. Займе 1год
02.06.2022, 16:02
Оригінальний коментар доступний на версії: ru

Подивіться, а чи є на балансі в мене доопрацювання?
Повинно було бути кілька годин, якщо так - то доробку робимо, зручна штука
02.06.2022, 16:05
Оригінальний коментар доступний на версії: ru

Добрий день. Додали окреме значення для вибору "Бренд (назва)". Якщо за назвою бренд не знайшло, створить новий із такою назвою і пропише продукту.
03.06.2022, 11:53
Оригінальний коментар доступний на версії: ru


У зв'язку з тим, що продукти - для мене найболючіша тема в Боксі.
(бо Бокс не витримає оновлення всіх прайсів)
Хочу висловити велику подяку за інформацію про те, що потрібні ID брендів для створення.
А додавання значення "Бренд (назва)" з логікою пошуку це дуже круто.
Також хотів уточнити, за що відповідає пункт "враховувати реальні продукти"?
Тому що виникла інша проблема:
За умови заборони: "створювати в системі продукти з однаковими артикулами" - на даний момент продукт створюється будь-який… через дану дію незалежно від того, чи є такий продукт у системі чи ні.
Можливо, я щось неправильно роблю?
10.06.2022, 11:53
Оригінальний коментар доступний на версії: ru

У замовленні може бути кілька різних об'єктів як продукти:
1. Реальні товари, у яких є картка
2. Фіктивні товари, які не мають картки але вони додані на замовлення. Можна додавати на замовлення товари без прив'язки до картки продукту, ставити їм ціни та інше.
Ось галочка робить так, щоб враховувалися лише товари з 1 пункту
З приводу того, що бокс щось може "не витримати" дуже спірне вираження. Яка кількість записів постачальника та за який час вам потрібно вантажити? Якщо ви всі товари постачальника проганяєте через замовлення, швидше за все, ви щось робите не так, тому що є спеціальний функціонал "Завантаження прайсів постачальників" який спеціалізується на прайсах від постачальників і за пару хвилин може обробляти по 100-200к рядків в xls
10.06.2022, 12:06
Оригінальний коментар доступний на версії: ru

Згоден, не подумав: "не витримає" це раніше стосувалося OneBox за умови оновлення 1-1.5 млн. позицій, через api з сайту.
Маючи сервак: CX51: 8 VCPU / 32 GB RAM = > має потягнути прайс 500 тис., так?)
"Створити продукт із процесу на основі додаткових полів продукту процесу"
Якщо "Враховувати реальні продукти" я думав буде спрацьовувати "Унікальність артикулів"
І не можна буде створювати продукт, який уже є у системі з таким самим артикулом.
13.06.2022, 10:22
Оригінальний коментар доступний на версії: ru

https://app.swaggerhub.com/apis-docs/Bodya44/OneBoxOSapiv2/2.0 нове апі досить спритне. Якщо вам потрібно оновлювати наприклад лише кілька полів, один запит на оновлення товаро може працювати до секунди. Також товари можна оновлювати групами через нього, по 100 штук. Відповідно ви можете скласти запит на оновлення 100 пробних продуктів, поміряти швидкість відповіді від боксу і розрахувати скільки займе оновлення всіх ваших товарів. Так само не варто забувати, що в апі можна стукати в мультипотоці, 10 потоків думаю буде достатньо. Таким чином ви збільшите швидкість вивантаження ваших даних ще раз на 4-5. Наскільки боляче при цьому буде серверу та його базі даних (навантаження в основному буде на бд), потрібно дивитися на конкретному прикладі. Я ставив би на те, що якщо ви хочете оновлювати ціни всім товарам, ви впораєтеся з оновленням 500к товарів хвилин за 10-30.
Для початку раджу просто спробувати оновити кілька продуктів через нове апі одним запитом та поміряти швидкість на вашому сервері, мені здається вона вас має повністю влаштувати.
14.06.2022, 09:33
Оригінальний коментар доступний на версії: ru

Як проведете тести, відпишіться будь ласка - дуже цікаво стало що у вас вийде на реальних даних.
14.06.2022, 09:51
Оригінальний коментар доступний на версії: ru

у мене виходить приблизно так:
[{"id":"100854","price":1293},{"id":"100965","price":1293},{"id":"100853","price":1293},{ "id":"100176","price":602},{"id":"100175","price":1302},{"id":"100177","price":802},{"id ":"100178","price":802},{"id":"95034","price":1193},{"id":"95131","price":1193},{"id": "95122","price":753},{"id":"97191","price":472},{"id":"97190","price":472},{"id":"97184 ","price":472},{"id":"97189","price":472},{"id":"97183","price":472},{"id":"97188", "price":472},{"id":"97186","price":472},{"id":"97182","price":472},{"id":"97187","price ":472},{"id":"97185","price":472},{"id":"96028","price":566},{"id":"96019","price": 1117}, {"id": "96020", "price": 1117}, {"id": "95104", "price": 907}, {"id": "95147", "price":1282} ,{"id":"96027","price":1402},{"id":"95144","price":984},{"id":"95145","price":984},{ "id":"95146","price":984},{"id":"95143","price":453},{"id":"96024","price":1766},{"id ":"96542","price":1766},{"id":"96021","price":1039},{"id":"96022","price":1039},{"id": "96023", "price": 1039}, {"id": "96640", "price": 913}, {"id" :"96726","price":1337},{"id":"98395","price":1202},{"id":"96727","price":1337},{"id":" 95179","price":661},{"id":"95130","price":661},{"id":"95124","price":661},{"id":"95123" ,"price":661},{"id":"97217","price":1038},{"id":"97218","price":1038},{"id":"97219"," price":1038},{"id":"97220","price":1038},{"id":"95129","price":823},{"id":"95128","price" :823},{"id":"95127","price":823},{"id":"95126","price":823},{"id":"95125","price":823 },{"id":"95033","price":823},{"id":"96545","price":841},{"id":"97434","price":841}, {"id":"96724","price":510},{"id":"96723","price":510},{"id":"96725","price":510},{" id":"95148","price":731},{"id":"97161","price":472},{"id":"97159","price":472},{"id" :"97156","price":472},{"id":"97160","price":472},{"id":"97158","price":472},{"id":" 97155","price":472},{"id":"97157","price":472},{"id":"95030","price":1237},{"id":"96069" ,"price":1237},{"id":"95149","price":1248},{"id":"95031","price":1248},{"id":"95150"," price":1248},{"id":"95032","price":1358},{"id":"95121","price ":1358},{"id":"97171","price":472},{"id":"97170","price":472},{"id":"97167","price": 472}, {"id": "97164", "price": 472}, {"id": "97169", "price": 472}, {"id": "97166", "price": 472} ,{"id":"97163","price":472},{"id":"97168","price":472},{"id":"97165","price":472},{ "id":"97162","price":472},{"id":"94994","price":698},{"id":"97694","price":1248},{"id ":"97180","price":1003},{"id":"97177","price":1003},{"id":"97179","price":1003},{"id": "97176","price":1003},{"id":"97173","price":1003},{"id":"97178","price":1003},{"id":"97175 ","price":1003},{"id":"97172","price":1003},{"id":"97181","price":902},{"id":"97174", "price":902},{"id":"99955","price":852},{"id":"98763","price":268},{"id":"99078","price ":257},{"id":"99079","price":298},{"id":"95602","price":245}]
оновлення ціни 100 товарів в одному запиті по id товару в боксі, швидкість відповіді на запит: 0.89 сек на холодну. На холодну означає, що це запит за цими продуктами, тобто. їх вибірки немає у кеші mysql. Якщо надсилати запит повторно, це вже приблизно 0.5. сек. Важливо розуміти, що це майже ідеальні умови без автоматизації для продукту та локальна машина з 6 потоками процесора по 2.8 GHz.
Також у апі є параметр fast. Тоді бокс взагалі не виконує оновлення, які ви надіслали, а видає вам id завдання. Коли спеціальні воркери дійдуть до виконання оновлень, запит буде виконаний і за завданням id ви зможете отримати результат відпрацювання, якщо він вам буде потрібен. З ним ви час відповіді скоротите до пінгу між серверами та часу запуску движка, це приблизно 0.1 сек.
Якщо брати ваші дані та мої розрахунки, то 500к товарів це приблизно 500к/100=5000 запитів в api. Якщо враховувати, що кожен відпрацює за 1сек (а на вашому сервері явно процесор кращий і відповідь має бути швидше, якщо пінг між серверами не великий). 5000 запитів це 5000 секунд ~ 83 хвилин. Якщо зробити кілька потоків, можна вкластися в 10-15 хвилин на оновлення всіх 500к товарів. Так само потрібно розуміти що вам врятли потрібно вивантажувати щогодини всі 500к товарів а потрібно оновлювати тільки ті, у яких відбулися якісь зміни. Що зменшує 500к товарів до передачі кількох сотень щогодини.
Але навіть передача 500к товарів за годину в однопотоці мені здається цілком нормальним результатом. Так що ваші слова про те, що бокс щось не потягне мені здаються як мінімум не обґрунтованими а як максимум трохи образливими)
ps чекаю на результати ваших тестів з вашими даними. Докази того, що 100 товарів можна оновити менше ніж за 1 с у вас є вище.
14.06.2022, 10:11
Оригінальний коментар доступний на версії: ru

Добрий вечір.

anonymous hamster
OneBox production написав:
Як проведете тести, відпишіться будь ласка - дуже цікаво стало що у вас вийде на реальних даних.

Добрий вечір.
Перепрошую за таку "швидку" відповідь.
Якби я знав, а головне міг, то я в той же день зробив би... і провів би тести.
А так чекаю і сподіваюся, що розробники сайту та інтегратор погодять та реалізують цей функціонал...
І обов'язково дам зворотний зв'язок.
04.07.2022, 20:50
Оригінальний коментар доступний на версії: ru


anonymous hamster
OneBox production написав:
Добрий день. Додали окреме значення для вибору "Бренд (назва)". Якщо за назвою бренд не знайшло, створить новий із такою назвою і пропише продукту.

Все супер, як я казав раніше.
Підкажіть, будь ласка, під час створення товару через дод. поля створюються дублі за артикулом, за умови заборони.
Можливо, я щось не так роблю?
Чи це все потребує доопрацювань?
За типом, як з брендом?
Якщо артикул існує, то підставляємо дані товару з цим артикулом.
Якщо немає, то створюємо артикул.
В ідеалі, щоб при пошуку артикулі враховувався бренд.
За типом:
1. Якщо за назвою бренд не знайшло, створить новий із такою назвою і пропише продукту.
2. Якщо бренд знайшло, то створюємо пошук за Артикулом з урахуванням бренду.
3. Якщо Артикул з таким брендом не існує, то створюємо новий продукт з таким артикулом і брендом.
4. А якщо існує, то підставляємо дані "знайденого продукту"
04.07.2022, 21:03
Оригінальний коментар доступний на версії: ru

все залежить від того, як ви створюєте товар. Дайте послідовність дій або приклад апі запиту, яким ви створюєте товар, тоді я точно зможу підказати алгоритм. Якщо ви створюєте товар через apiv2 /api/v2/product/set/, то там є поле findbyArray, в яке необхідно передавати список полів, по яких потрібно шукати продукт перед створенням. Тобто. якщо передано туди ["articul", "externalid"] то спочатку буде пошук товару за артикулом та зовнішнім id а потім вставка.
05.07.2022, 17:17
Оригінальний коментар доступний на версії: ru

Будь ласка, приєднуйтесь до діалогу. Якщо вам є що сказати – будь ласка, напишіть коментар. Для входу потрібний мобільний телефон та смс-код для ідентифікації. Увійти та написати коментар