Один каталог WooCommerce, що продається в кількох містах за цінами, які відрізняються в кожному з них. Це розширення додає регіон як вимір магазину, а не як його другу копію, і опубліковано як програмне забезпечення з відкритим кодом за ліцензією GPL‑3.0.
Джерело, проблеми та релізи: github.com/kostyasorokin/wc-regional-catalog
Проблема, яку це вирішує
Звичайним рішенням проблеми регіонального ціноутворення є дублювання продукту, один раз на кожне місто. Потім каталог збільшується відповідно до кількості міст, кожне редагування потрібно вносити стільки ж разів, і дві копії розходяться протягом місяця.
Тут регіон – це таксономія продукту, а регіональна ціна – це значення поруч із ним. Один продукт, один опис, одна інформація про наявність товару на складі – і ціна, яка залежить від того, звідки дивиться відвідувач.
Як визначається регіон
Перепишіть правила, розмістивши місто на шляху — /магазин/харків/назва-продукту/ — а постійні посилання на продукти переписуються, щоб залишатися всередині нього. Таким чином, URL-адреса є повною інструкцією: вона вказує і на те, що переглядається, і на те, звідки, що робить регіональну сторінку взагалі індексованою.
Адреса виграє, коли вона вказує на регіон. В іншому випадку файл cookie зберігає останній вибір, тому відвідувач, який перейшов через сторінку міста, зберігає його під час перегляду решти магазину.
Звідки береться ціна
Регіональний показник застосовується через власні фільтри цін WooCommerce, а не шляхом запису поверх товару. Оскільки всі наступні елементи зчитують ціну через ті ж самі фільтри, кошик і оформлення замовлення виконуються, не знаючи про існування розширення.
Фільтрація каталогу – це запит таксономії, а не метазапит. Ця відмінність втрачає значення після кількох сотень товарів і починає мати значне значення після кількох тисяч, саме для такого розміру було написано цей код.
Струми та комутація
Each region can emit its own Google Merchant RSS feed, so a shopping campaign can be aimed at one city without a second store behind it. A product that carries no price for the region asked for falls back to its ordinary one, which is worth knowing before pointing a budget at the feed.
Шорткод відтворює перемикач регіонів там, де це потрібно темі. Більше нічого не додається до фронтенду — розширення не ставить у чергу жодних скриптів та таблиць стилів, а сторінка, яку воно створює, важить рівно стільки ж, скільки важила сторінка теми.
Ролі
Розробник
Konstantin Sorokin
Виконано
- Архітектура плагінів та розробка на PHP
- Таксономія регіонів та ціноутворення за регіонами
- Переписати правила та постійні посилання на регіональні продукти
- RSS-канал Google Merchant за регіонами
- Шорткод перемикача регіонів
- Документація та реліз з відкритим вихідним кодом