[{"data":1,"prerenderedAt":358},["ShallowReactive",2],{"navigation-en":3,"page-en-\u002Fplugins\u002Fexpiration-date\u002Femails-and-processing":187,"surround-en-\u002Fplugins\u002Fexpiration-date\u002Femails-and-processing":353},[4],{"title":5,"path":6,"stem":7,"children":8,"page":186},"Plugins","\u002Fplugins","1.plugins",[9,55,96,137,160],{"title":10,"path":11,"stem":12,"children":13},"Shop The Look","\u002Fplugins\u002Fshop-the-look","1.plugins\u002F1.shop-the-look\u002F1.index",[14,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Maintenance and updates","\u002Fplugins\u002Fshop-the-look\u002Fmaintenance","1.plugins\u002F1.shop-the-look\u002F10.maintenance",{"title":20,"path":21,"stem":22},"Troubleshooting","\u002Fplugins\u002Fshop-the-look\u002Ftroubleshooting","1.plugins\u002F1.shop-the-look\u002F11.troubleshooting",{"title":24,"path":25,"stem":26},"Installation","\u002Fplugins\u002Fshop-the-look\u002Finstallation","1.plugins\u002F1.shop-the-look\u002F2.installation",{"title":28,"path":29,"stem":30},"Configuration","\u002Fplugins\u002Fshop-the-look\u002Fconfiguration","1.plugins\u002F1.shop-the-look\u002F3.configuration",{"title":32,"path":33,"stem":34},"Quick start","\u002Fplugins\u002Fshop-the-look\u002Fquick-start","1.plugins\u002F1.shop-the-look\u002F4.quick-start",{"title":36,"path":37,"stem":38},"Create and manage scenes","\u002Fplugins\u002Fshop-the-look\u002Fscenes","1.plugins\u002F1.shop-the-look\u002F5.scenes",{"title":40,"path":41,"stem":42},"Organise scenes with categories","\u002Fplugins\u002Fshop-the-look\u002Fcategories","1.plugins\u002F1.shop-the-look\u002F6.categories",{"title":44,"path":45,"stem":46},"CMS elements and blocks","\u002Fplugins\u002Fshop-the-look\u002Fcms-elements","1.plugins\u002F1.shop-the-look\u002F7.cms-elements",{"title":48,"path":49,"stem":50},"PDF catalogues","\u002Fplugins\u002Fshop-the-look\u002Fpdf-catalogues","1.plugins\u002F1.shop-the-look\u002F8.pdf-catalogues",{"title":52,"path":53,"stem":54},"Storefront behaviour","\u002Fplugins\u002Fshop-the-look\u002Fstorefront-behaviour","1.plugins\u002F1.shop-the-look\u002F9.storefront-behaviour",{"title":56,"path":57,"stem":58,"children":59},"Preorder, Stock & Price Notifier","\u002Fplugins\u002Fpreorder-stock-price-notifier","1.plugins\u002F2.preorder-stock-price-notifier\u002F1.index",[60,61,64,67,70,73,76,80,84,88,92],{"title":56,"path":57,"stem":58},{"title":52,"path":62,"stem":63},"\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fstorefront-behaviour","1.plugins\u002F2.preorder-stock-price-notifier\u002F10.storefront-behaviour",{"title":20,"path":65,"stem":66},"\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Ftroubleshooting","1.plugins\u002F2.preorder-stock-price-notifier\u002F11.troubleshooting",{"title":24,"path":68,"stem":69},"\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Finstallation","1.plugins\u002F2.preorder-stock-price-notifier\u002F2.installation",{"title":28,"path":71,"stem":72},"\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fconfiguration","1.plugins\u002F2.preorder-stock-price-notifier\u002F3.configuration",{"title":32,"path":74,"stem":75},"\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fquick-start","1.plugins\u002F2.preorder-stock-price-notifier\u002F4.quick-start",{"title":77,"path":78,"stem":79},"Preorders","\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fpreorders","1.plugins\u002F2.preorder-stock-price-notifier\u002F5.preorders",{"title":81,"path":82,"stem":83},"Back-in-stock notifications","\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fback-in-stock-notifications","1.plugins\u002F2.preorder-stock-price-notifier\u002F6.back-in-stock-notifications",{"title":85,"path":86,"stem":87},"Price-drop notifications","\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Fprice-drop-notifications","1.plugins\u002F2.preorder-stock-price-notifier\u002F7.price-drop-notifications",{"title":89,"path":90,"stem":91},"Request management","\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Frequest-management","1.plugins\u002F2.preorder-stock-price-notifier\u002F8.request-management",{"title":93,"path":94,"stem":95},"Emails and queue","\u002Fplugins\u002Fpreorder-stock-price-notifier\u002Femails-and-queue","1.plugins\u002F2.preorder-stock-price-notifier\u002F9.emails-and-queue",{"title":97,"path":98,"stem":99,"children":100},"Picture Book Configurator","\u002Fplugins\u002Fpicture-book","1.plugins\u002F3.picture-book\u002F1.index",[101,102,105,108,111,114,117,121,125,129,133],{"title":97,"path":98,"stem":99},{"title":52,"path":103,"stem":104},"\u002Fplugins\u002Fpicture-book\u002Fstorefront-behaviour","1.plugins\u002F3.picture-book\u002F10.storefront-behaviour",{"title":20,"path":106,"stem":107},"\u002Fplugins\u002Fpicture-book\u002Ftroubleshooting","1.plugins\u002F3.picture-book\u002F11.troubleshooting",{"title":24,"path":109,"stem":110},"\u002Fplugins\u002Fpicture-book\u002Finstallation","1.plugins\u002F3.picture-book\u002F2.installation",{"title":28,"path":112,"stem":113},"\u002Fplugins\u002Fpicture-book\u002Fconfiguration","1.plugins\u002F3.picture-book\u002F3.configuration",{"title":32,"path":115,"stem":116},"\u002Fplugins\u002Fpicture-book\u002Fquick-start","1.plugins\u002F3.picture-book\u002F4.quick-start",{"title":118,"path":119,"stem":120},"Books","\u002Fplugins\u002Fpicture-book\u002Fbooks","1.plugins\u002F3.picture-book\u002F5.books",{"title":122,"path":123,"stem":124},"Page templates","\u002Fplugins\u002Fpicture-book\u002Fpage-templates","1.plugins\u002F3.picture-book\u002F6.page-templates",{"title":126,"path":127,"stem":128},"Product assignment","\u002Fplugins\u002Fpicture-book\u002Fproduct-assignment","1.plugins\u002F3.picture-book\u002F7.product-assignment",{"title":130,"path":131,"stem":132},"Customer journey","\u002Fplugins\u002Fpicture-book\u002Fcustomer-journey","1.plugins\u002F3.picture-book\u002F8.customer-journey",{"title":134,"path":135,"stem":136},"Orders and PDF export","\u002Fplugins\u002Fpicture-book\u002Forders-and-pdf-export","1.plugins\u002F3.picture-book\u002F9.orders-and-pdf-export",{"title":138,"path":139,"stem":140,"children":141},"Product Expiration Date","\u002Fplugins\u002Fexpiration-date","1.plugins\u002F4.expiration-date\u002F1.index",[142,143,146,149,153,157],{"title":138,"path":139,"stem":140},{"title":24,"path":144,"stem":145},"\u002Fplugins\u002Fexpiration-date\u002Finstallation","1.plugins\u002F4.expiration-date\u002F2.installation",{"title":28,"path":147,"stem":148},"\u002Fplugins\u002Fexpiration-date\u002Fconfiguration","1.plugins\u002F4.expiration-date\u002F3.configuration",{"title":150,"path":151,"stem":152},"Product setup and discounts","\u002Fplugins\u002Fexpiration-date\u002Fproduct-setup-and-discounts","1.plugins\u002F4.expiration-date\u002F4.product-setup-and-discounts",{"title":154,"path":155,"stem":156},"Emails and processing","\u002Fplugins\u002Fexpiration-date\u002Femails-and-processing","1.plugins\u002F4.expiration-date\u002F5.emails-and-processing",{"title":20,"path":158,"stem":159},"\u002Fplugins\u002Fexpiration-date\u002Ftroubleshooting","1.plugins\u002F4.expiration-date\u002F6.troubleshooting",{"title":161,"path":162,"stem":163,"children":164},"Gift Wrap & Messages","\u002Fplugins\u002Fgift-wrap","1.plugins\u002F5.gift-wrap\u002F1.index",[165,166,169,172,175,179,183],{"title":161,"path":162,"stem":163},{"title":24,"path":167,"stem":168},"\u002Fplugins\u002Fgift-wrap\u002Finstallation","1.plugins\u002F5.gift-wrap\u002F2.installation",{"title":32,"path":170,"stem":171},"\u002Fplugins\u002Fgift-wrap\u002Fquick-start","1.plugins\u002F5.gift-wrap\u002F3.quick-start",{"title":28,"path":173,"stem":174},"\u002Fplugins\u002Fgift-wrap\u002Fconfiguration","1.plugins\u002F5.gift-wrap\u002F4.configuration",{"title":176,"path":177,"stem":178},"Wrapping options","\u002Fplugins\u002Fgift-wrap\u002Fwrapping-options","1.plugins\u002F5.gift-wrap\u002F5.wrapping-options",{"title":180,"path":181,"stem":182},"Storefront and orders","\u002Fplugins\u002Fgift-wrap\u002Fstorefront-and-orders","1.plugins\u002F5.gift-wrap\u002F6.storefront-and-orders",{"title":20,"path":184,"stem":185},"\u002Fplugins\u002Fgift-wrap\u002Ftroubleshooting","1.plugins\u002F5.gift-wrap\u002F7.troubleshooting",false,{"id":188,"title":154,"body":189,"description":346,"extension":347,"links":348,"meta":349,"navigation":350,"path":155,"seo":351,"stem":156,"__hash__":352},"docs_en\u002F1.plugins\u002F4.expiration-date\u002F5.emails-and-processing.md",{"type":190,"value":191,"toc":338},"minimark",[192,196,200,205,213,226,229,233,236,239,243,246,268,272,280,305,308,323,327,334],[193,194,154],"h1",{"id":195},"emails-and-processing",[197,198,199],"p",{},"The plugin uses Shopware's scheduled-task system and Messenger queue. It is designed to process large catalogues in batches instead of loading every expiring product at once.",[201,202,204],"h2",{"id":203},"what-the-daily-task-does","What the daily task does",[197,206,207,208,212],{},"The daily task ",[209,210,211],"code",{},"steelcode_expiration_date.process",":",[214,215,216,220,223],"ol",{},[217,218,219],"li",{},"invalidates product caches at relevant discount transitions;",[217,221,222],{},"deactivates eligible expired products in batches; and",[217,224,225],{},"queues eligible notification batches for Messenger.",[197,227,228],{},"The task does not send emails itself. Messenger sends the queued emails afterwards.",[201,230,232],{"id":231},"production-requirement","Production requirement",[197,234,235],{},"Keep Shopware's scheduled-task runner and a persistent Messenger worker running in production. The Administration worker may process messages while an administrator is logged in, but it is not a replacement for a server-side worker.",[197,237,238],{},"If the task or worker is not running, dates can still be shown and discounts can still be calculated at request time, but automatic deactivation, cache-transition processing, and notification delivery will be delayed.",[201,240,242],{"id":241},"manual-processing","Manual processing",[197,244,245],{},"Run the same processing manually after changing dates, during testing, or when diagnosing an issue:",[247,248,253],"pre",{"className":249,"code":250,"language":251,"meta":252,"style":252},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bin\u002Fconsole steelcode:expiration-date:process\n","bash","",[209,254,255],{"__ignoreMap":252},[256,257,260,264],"span",{"class":258,"line":259},"line",1,[256,261,263],{"class":262},"sBMFI","bin\u002Fconsole",[256,265,267],{"class":266},"sfazB"," steelcode:expiration-date:process\n",[201,269,271],{"id":270},"email-template-and-recipients","Email template and recipients",[197,273,274,275,279],{},"Notification emails are sent to the addresses configured in the plugin, not to the current Administration user. The installed ",[276,277,278],"strong",{},"Product expiration date"," mail template contains the product name, product number, expiration date, and a direct Administration link.",[197,281,282,283,286,287,290,291,290,294,290,297,300,301,304],{},"You can edit it in ",[276,284,285],{},"Settings → Email templates",". Preserve the supplied template variables, especially ",[209,288,289],{},"product",", ",[209,292,293],{},"expirationDate",[209,295,296],{},"notification",[209,298,299],{},"shopName",", and ",[209,302,303],{},"adminProductUrl",", so the template continues to render correctly.",[197,306,307],{},"Shopware’s Administration worker can consume messages while Administration is open. In production, run a persistent Messenger worker so emails are delivered even when nobody is logged in.",[247,309,311],{"className":249,"code":310,"language":251,"meta":252,"style":252},"bin\u002Fconsole messenger:consume -vv\n",[209,312,313],{"__ignoreMap":252},[256,314,315,317,320],{"class":258,"line":259},[256,316,263],{"class":262},[256,318,319],{"class":266}," messenger:consume",[256,321,322],{"class":266}," -vv\n",[201,324,326],{"id":325},"logs","Logs",[197,328,329,330,333],{},"Plugin activity and failures are recorded in ",[209,331,332],{},"var\u002Flog\u002Fsteelcode_expiration_date.log",". Check this file first when a notification is missing or a scheduled process fails.",[335,336,337],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":252,"searchDepth":259,"depth":339,"links":340},2,[341,342,343,344,345],{"id":203,"depth":339,"text":204},{"id":231,"depth":339,"text":232},{"id":241,"depth":339,"text":242},{"id":270,"depth":339,"text":271},{"id":325,"depth":339,"text":326},"Run expiry processing, configure mail delivery, and understand the scheduled task and Messenger queue.","md",null,{},true,{"title":154,"description":346},"B038FqKlgvsa8Ee7s4EMC2SXGEuMdA3mpZCnY63HOcI",[354,356],{"title":150,"path":151,"stem":152,"description":355,"children":-1},"Set a product expiry date and define the discount rules that apply as expiry approaches.",{"title":20,"path":158,"stem":159,"description":357,"children":-1},"Diagnose common Product Expiration Date configuration, pricing, queue, and email issues.",1787761519496]