{"jsonapi":{"version":"1.0","meta":{"links":{"self":{"href":"http:\/\/jsonapi.org\/format\/1.0\/"}}}},"data":[{"type":"node--project_module","id":"f4d6de54-2808-4cf7-9251-bc747da66740","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740?resourceVersion=id%3A20010071"}},"attributes":{"drupal_internal__nid":605898,"status":true,"title":"Commerce Core","created":"2009-10-15T21:41:50+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"Drupal Commerce powers eCommerce innovation through every stage of growth. At its core it is lean and mean, enforcing strict development standards and leveraging the greatest features of Drupal for maximum flexibility.\r\n\r\neCommerce platforms are often developed with an \u003Cem\u003Eapplication\u003C\/em\u003E mindset, highlighting what you can \u003Cem\u003Edo\u003C\/em\u003E with them out of the box. Drupal Commerce was developed with a \u003Cem\u003Eframework first\u003C\/em\u003E mindset, focusing on what you can \u003Cem\u003Ebuild\u003C\/em\u003E with it. The Commerce Core project was designed to enable teams to adapt to change and scale with ease.\r\n\r\nSponsored and maintained by \u003Ca href=\u0022https:\/\/www.centarro.io\u0022\u003ECentarro\u003C\/a\u003E.\r\n\u003C!--break--\u003E\r\n\r\n\u003Ch3\u003ECommerce Core Features\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003ECreate product types with custom attributes\u003C\/li\u003E\r\n\u003Cli\u003EDynamic product pages with one or many variations\u003C\/li\u003E\r\n\u003Cli\u003EMultiple order types and correlated checkout flows\u003C\/li\u003E\r\n\u003Cli\u003EPromotions with multiple offer types, conditions, and coupons\u003C\/li\u003E\r\n\u003Cli\u003ERobust payment API, integrating 100+ payment gateways\u003C\/li\u003E\r\n\u003Cli\u003EAddress book and order management\u003C\/li\u003E\r\n\u003Cli\u003ETax calculation \/ VAT support\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nAdditional functionality is provided through contributed modules, such as \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_recurring\u0022\u003ERecurring\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_shipping\u0022\u003EShipping\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_stock\u0022\u003EStock\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_paypal\u0022\u003EPayPal\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_avatax\u0022\u003EAvaTax\u003C\/a\u003E, and \u003Ca href=\u0022https:\/\/www.drupalcommerce.org\/contrib\u0022\u003Emany more\u003C\/a\u003E...\r\n\r\n\u003Cdiv class=\u0022note-tip\u0022\u003E\r\n\u003Ch2\u003ELooking for Drupal Commerce support?\u003C\/h2\u003E\r\n\u003Cdl\u003E\r\n\u003Cimg align=\u0022right\u0022 width=\u002275\u0022 src=\u0022https:\/\/www.drupal.org\/files\/styles\/grid-3-2x\/public\/project-images\/centarro_logo_0.png?itok=SVhqpe1M\u0022 \/\u003E\r\n\u003Cdt\u003EHire the project maintainers:\u003C\/dt\u003E\r\n\u003Cdd\u003ECentarro offers \u003Ca href=\u0022https:\/\/www.centarro.io\/products\/centarro-support\u0022 target=\u0022_blank\u0022\u003EDrupal Commerce Support and Development\u003C\/a\u003E services, ranging from a flat monthly fee for maintenance support (with optional development retainers) to full site architecture and development.\u003C\/dd\u003E\r\n\u003Cdt\u003ECommunity support options:\u003C\/dt\u003E\r\n\u003Cdd\u003EOver 2,000 developers participate in our two support channels on a best-effort basis, \u003Ca href=\u0022https:\/\/drupal.stackexchange.com\/questions\/tagged\/commerce\u0022 target=\u0022_blank\u0022\u003EDrupal Answers\u003C\/a\u003E and \u003Ca href=\u0022\/slack\u0022\u003EDrupal Slack\u003C\/a\u003E (channel: \u003Ca href=\u0022https:\/\/drupal.slack.com\/messages\/C1TLCCF9B\u0022 rel=\u0022nofollow\u0022\u003E#commerce\u003C\/a\u003E).\r\n\u003C\/dl\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Ch3\u003EDocumentation\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce2\u0022\u003ECommerce 2.x documentation\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce1\u0022\u003ECommerce 1.x documentation\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nYou are responsible to ensure your merchants and customers are protected from online payment fraud. For more information, we recommend you read the \u003Ca href=\u0022http:\/\/drupalpcicompliance.org\/\u0022\u003EDrupal PCI Compliance white paper\u003C\/a\u003E maintained by third party eCommerce security experts.\r\n\r\n\u003Ch3\u003EDrupal \u003E=10.3 \u0026 11 \/ Commerce 3.x\u003C\/h3\u003E\r\nCommerce 3.x supports Drupal \u003E=10.3 and 11, upgrading from Commerce 2.x is supported and should be relatively straighforward assuming services \u0026 APIS deprecated during the 2.x lifecycle aren\u0027t used within your codebase. \r\n\r\n\u003Ch3\u003EDrupal 9 \u0026 10 \/ Commerce 2.x\u003C\/h3\u003E\r\n\r\nCommerce 2.x should only be installed via Composer. The zip files on this page are provided for informative purposes only. See our \u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce2\/developer-guide\/install-update\/installation\u0022\u003Einstallation docs\u003C\/a\u003E.\r\n\r\nDrupal 9.3.0 or newer is required.\r\n\r\n\u003Ch3\u003EDrupal 7 \/ Commerce 1.x\u003C\/h3\u003E\r\n\r\nDrupal Commerce currently depends on Drupal 7 (\u003E= 7.15) with the latest releases of a few modules: \u003Ca href=\u0022http:\/\/drupal.org\/project\/ctools\u0022\u003ECtools\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022\u003EViews\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/entity\u0022\u003EEntity API\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/rules\u0022\u003ERules\u003C\/a\u003E, and \u003Ca href=\u0022http:\/\/drupal.org\/project\/addressfield\u0022\u003EAddress field\u003C\/a\u003E.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EDrupal Commerce powers eCommerce innovation through every stage of growth. At its core it is lean and mean, enforcing strict development standards and leveraging the greatest features of Drupal for maximum flexibility.\u003C\/p\u003E\n\u003Cp\u003EeCommerce platforms are often developed with an \u003Cem\u003Eapplication\u003C\/em\u003E mindset, highlighting what you can \u003Cem\u003Edo\u003C\/em\u003E with them out of the box. Drupal Commerce was developed with a \u003Cem\u003Eframework first\u003C\/em\u003E mindset, focusing on what you can \u003Cem\u003Ebuild\u003C\/em\u003E with it. The Commerce Core project was designed to enable teams to adapt to change and scale with ease.\u003C\/p\u003E\n\u003Cp\u003ESponsored and maintained by \u003Ca href=\u0022https:\/\/www.centarro.io\u0022 rel=\u0022nofollow\u0022\u003ECentarro\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ch3 id=\u0022commerce-core-features\u0022\u003ECommerce Core Features\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003ECreate product types with custom attributes\u003C\/li\u003E\n\u003Cli\u003EDynamic product pages with one or many variations\u003C\/li\u003E\n\u003Cli\u003EMultiple order types and correlated checkout flows\u003C\/li\u003E\n\u003Cli\u003EPromotions with multiple offer types, conditions, and coupons\u003C\/li\u003E\n\u003Cli\u003ERobust payment API, integrating 100+ payment gateways\u003C\/li\u003E\n\u003Cli\u003EAddress book and order management\u003C\/li\u003E\n\u003Cli\u003ETax calculation \/ VAT support\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EAdditional functionality is provided through contributed modules, such as \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_recurring\u0022 rel=\u0022nofollow\u0022\u003ERecurring\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_shipping\u0022 rel=\u0022nofollow\u0022\u003EShipping\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_stock\u0022 rel=\u0022nofollow\u0022\u003EStock\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_paypal\u0022 rel=\u0022nofollow\u0022\u003EPayPal\u003C\/a\u003E, \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_avatax\u0022 rel=\u0022nofollow\u0022\u003EAvaTax\u003C\/a\u003E, and \u003Ca href=\u0022https:\/\/www.drupalcommerce.org\/contrib\u0022 rel=\u0022nofollow\u0022\u003Emany more\u003C\/a\u003E...\u003C\/p\u003E\n\u003Cdiv\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022looking-for-drupal-commerce-support\u0022\u003ELooking for Drupal Commerce support?\u003C\/h2\u003E\n\u003Cdl\u003E\n\u003Cimg width=\u002216\u0022 src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\n\u003Cdt\u003EHire the project maintainers:\u003C\/dt\u003E\n\u003Cdd\u003ECentarro offers \u003Ca href=\u0022https:\/\/www.centarro.io\/products\/centarro-support\u0022 rel=\u0022nofollow\u0022\u003EDrupal Commerce Support and Development\u003C\/a\u003E services, ranging from a flat monthly fee for maintenance support (with optional development retainers) to full site architecture and development.\u003C\/dd\u003E\n\u003Cdt\u003ECommunity support options:\u003C\/dt\u003E\n\u003Cdd\u003EOver 2,000 developers participate in our two support channels on a best-effort basis, \u003Ca href=\u0022https:\/\/drupal.stackexchange.com\/questions\/tagged\/commerce\u0022 rel=\u0022nofollow\u0022\u003EDrupal Answers\u003C\/a\u003E and \u003Ca href=\u0022\/slack\u0022 rel=\u0022nofollow\u0022\u003EDrupal Slack\u003C\/a\u003E (channel: \u003Ca href=\u0022https:\/\/drupal.slack.com\/messages\/C1TLCCF9B\u0022 rel=\u0022nofollow\u0022\u003E#commerce\u003C\/a\u003E).\n\u003C\/dd\u003E\u003C\/dl\u003E\n\u003C\/div\u003E\n\u003Ch3 id=\u0022documentation\u0022\u003EDocumentation\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce2\u0022 rel=\u0022nofollow\u0022\u003ECommerce 2.x documentation\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce1\u0022 rel=\u0022nofollow\u0022\u003ECommerce 1.x documentation\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EYou are responsible to ensure your merchants and customers are protected from online payment fraud. For more information, we recommend you read the \u003Ca href=\u0022http:\/\/drupalpcicompliance.org\/\u0022 rel=\u0022nofollow\u0022\u003EDrupal PCI Compliance white paper\u003C\/a\u003E maintained by third party eCommerce security experts.\u003C\/p\u003E\n\u003Ch3 id=\u0022drupal-gt-10-3-amp-11-commerce-3-x\u0022\u003EDrupal \u0026gt;=10.3 \u0026amp; 11 \/ Commerce 3.x\u003C\/h3\u003E\n\u003Cp\u003ECommerce 3.x supports Drupal \u0026gt;=10.3 and 11, upgrading from Commerce 2.x is supported and should be relatively straighforward assuming services \u0026amp; APIS deprecated during the 2.x lifecycle aren\u0027t used within your codebase. \u003C\/p\u003E\n\u003Ch3 id=\u0022drupal-9-amp-10-commerce-2-x\u0022\u003EDrupal 9 \u0026amp; 10 \/ Commerce 2.x\u003C\/h3\u003E\n\u003Cp\u003ECommerce 2.x should only be installed via Composer. The zip files on this page are provided for informative purposes only. See our \u003Ca href=\u0022https:\/\/docs.drupalcommerce.org\/commerce2\/developer-guide\/install-update\/installation\u0022 rel=\u0022nofollow\u0022\u003Einstallation docs\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EDrupal 9.3.0 or newer is required.\u003C\/p\u003E\n\u003Ch3 id=\u0022drupal-7-commerce-1-x\u0022\u003EDrupal 7 \/ Commerce 1.x\u003C\/h3\u003E\n\u003Cp\u003EDrupal Commerce currently depends on Drupal 7 (\u0026gt;= 7.15) with the latest releases of a few modules: \u003Ca href=\u0022http:\/\/drupal.org\/project\/ctools\u0022 rel=\u0022nofollow\u0022\u003ECtools\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EEntity API\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/rules\u0022 rel=\u0022nofollow\u0022\u003ERules\u003C\/a\u003E, and \u003Ca href=\u0022http:\/\/drupal.org\/project\/addressfield\u0022 rel=\u0022nofollow\u0022\u003EAddress field\u003C\/a\u003E.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00227.x-1.x\u0022:17895,\u00228.x-2.x\u0022:20593,\u00223.0.x\u0022:479}","field_active_installs_total":38967,"field_composer_namespace":"drupal\/commerce","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":{"value":"\u003Ch3\u003EDescribe your bug or feature request.\u003C\/h3\u003E\r\n\r\n\u003Ch3\u003EIf a bug, provide steps to reproduce it from a clean install.\u003C\/h3\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ch3 id=\u0022describe-your-bug-or-feature-request\u0022\u003EDescribe your bug or feature request.\u003C\/h3\u003E\n\u003Ch3 id=\u0022if-a-bug-provide-steps-to-reproduce-it-from-a-clean-install\u0022\u003EIf a bug, provide steps to reproduce it from a clean install.\u003C\/h3\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E"},"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/commerce\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"commerce","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","meta":{"drupal_internal__target_id":3661446}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/uid?resourceVersion=id%3A20010071"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/relationships\/uid?resourceVersion=id%3A20010071"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/field_development_status?resourceVersion=id%3A20010071"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/relationships\/field_development_status?resourceVersion=id%3A20010071"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/field_maintenance_status?resourceVersion=id%3A20010071"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/relationships\/field_maintenance_status?resourceVersion=id%3A20010071"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/field_module_categories?resourceVersion=id%3A20010071"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/relationships\/field_module_categories?resourceVersion=id%3A20010071"}}},"field_project_images":{"data":[{"type":"file--file","id":"6c2cdb38-58d3-43ac-9bb8-8910b4efbc61","meta":{"alt":"Commerce Core is maintained by Centarro.","title":null,"width":235,"height":220,"drupal_internal__target_id":20036}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/field_project_images?resourceVersion=id%3A20010071"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f4d6de54-2808-4cf7-9251-bc747da66740\/relationships\/field_project_images?resourceVersion=id%3A20010071"}}}}},{"type":"node--project_module","id":"97488958-6be1-44f7-9977-f74d11897a88","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88?resourceVersion=id%3A20006033"}},"attributes":{"drupal_internal__nid":103123,"status":true,"title":"Fivestar","created":"2006-12-13T19:38:27+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"The Fivestar voting module adds a clean, attractive voting widget to nodes and comments and any entity. It features:\r\n\u003Cul\u003E\r\n\u003Cli\u003EjQuery rollover effects and AJAX no-reload voting\u003C\/li\u003E\r\n\u003Cli\u003EConfigurable star sets\u003C\/li\u003E\r\n\u003Cli\u003EGraceful degradation to an HTML rating form when JavaScript is turned off\u003C\/li\u003E\r\n\u003Cli\u003ESupport for anonymous voters\u003C\/li\u003E\r\n\u003Cli\u003ESpam protection to keep users from filling your DB with bogus votes\u003C\/li\u003E\r\n\u003Cli\u003EEasy-to-use integration with Views module for lists sorted by rating, or filtered by min\/max ratings\u003C\/li\u003E\r\n\u003Cli\u003EA Fivestar field for use in custom node types\u003C\/li\u003E\r\n\u003Cli\u003EAn easy-to-use Form API element type for use in other modules\u003C\/li\u003E\r\n\u003Cli\u003ECompatible with all versions of jQuery (1.0 - 1.8)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C!--break--\u003E\r\n\u003Ch3\u003EDependencies\u003C\/h3\u003E\r\nThis module is dependent on the \u003Ca href=\u0022http:\/\/drupal.org\/project\/votingapi\u0022\u003EVoting API\u003C\/a\u003E. Voting API provides database storage of votes, as well as \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022\u003EViews integration\u003C\/a\u003E. You\u0027ll need to download \u003Ca href=\u0022http:\/\/drupal.org\/project\/votingapi\u0022\u003EVoting API\u003C\/a\u003E, and \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022\u003EViews\u003C\/a\u003E is highly suggested if you want to create pages of results or use ratings to sort content.","format":"1","processed":"\u003Cp\u003EThe Fivestar voting module adds a clean, attractive voting widget to nodes and comments and any entity. It features:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EjQuery rollover effects and AJAX no-reload voting\u003C\/li\u003E\n\u003Cli\u003EConfigurable star sets\u003C\/li\u003E\n\u003Cli\u003EGraceful degradation to an HTML rating form when JavaScript is turned off\u003C\/li\u003E\n\u003Cli\u003ESupport for anonymous voters\u003C\/li\u003E\n\u003Cli\u003ESpam protection to keep users from filling your DB with bogus votes\u003C\/li\u003E\n\u003Cli\u003EEasy-to-use integration with Views module for lists sorted by rating, or filtered by min\/max ratings\u003C\/li\u003E\n\u003Cli\u003EA Fivestar field for use in custom node types\u003C\/li\u003E\n\u003Cli\u003EAn easy-to-use Form API element type for use in other modules\u003C\/li\u003E\n\u003Cli\u003ECompatible with all versions of jQuery (1.0 - 1.8)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003EDependencies\u003C\/h3\u003E\n\u003Cp\u003EThis module is dependent on the \u003Ca href=\u0022http:\/\/drupal.org\/project\/votingapi\u0022 rel=\u0022nofollow\u0022\u003EVoting API\u003C\/a\u003E. Voting API provides database storage of votes, as well as \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews integration\u003C\/a\u003E. You\u0027ll need to download \u003Ca href=\u0022http:\/\/drupal.org\/project\/votingapi\u0022 rel=\u0022nofollow\u0022\u003EVoting API\u003C\/a\u003E, and \u003Ca href=\u0022http:\/\/drupal.org\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E is highly suggested if you want to create pages of results or use ratings to sort content.\u003C\/p\u003E","summary":""},"field_active_installs":"{\u00225.x-1.x\u0022:17,\u00226.x-1.x\u0022:1088,\u00226.x-2.x\u0022:21,\u00227.x-2.x\u0022:15874,\u00228.x-1.x\u0022:3900,\u00223.0.x\u0022:6}","field_active_installs_total":20906,"field_composer_namespace":"drupal\/fivestar","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"fivestar","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"039134d3-4703-4681-a13e-24bb85872402","meta":{"drupal_internal__target_id":244460}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/uid?resourceVersion=id%3A20006033"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/relationships\/uid?resourceVersion=id%3A20006033"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/field_development_status?resourceVersion=id%3A20006033"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/relationships\/field_development_status?resourceVersion=id%3A20006033"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","meta":{"drupal_internal__target_id":27269}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/field_maintenance_status?resourceVersion=id%3A20006033"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/relationships\/field_maintenance_status?resourceVersion=id%3A20006033"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}},{"type":"taxonomy_term--module_categories","id":"7c5db130-79b8-4130-a09c-c197333e7d13","meta":{"drupal_internal__target_id":190}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","meta":{"drupal_internal__target_id":200}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/field_module_categories?resourceVersion=id%3A20006033"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/relationships\/field_module_categories?resourceVersion=id%3A20006033"}}},"field_project_images":{"data":[{"type":"file--file","id":"694d7a3d-d89a-4c81-87fe-faf431516672","meta":{"alt":"fivestar-settings.png","title":null,"width":681,"height":487,"drupal_internal__target_id":2037}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/field_project_images?resourceVersion=id%3A20006033"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/97488958-6be1-44f7-9977-f74d11897a88\/relationships\/field_project_images?resourceVersion=id%3A20006033"}}}}},{"type":"node--project_module","id":"ebedee07-3465-4cd8-a0b1-eca154436ca0","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0?resourceVersion=id%3A20006433"}},"attributes":{"drupal_internal__nid":149384,"status":true,"title":"HTML Mail","created":"2007-06-05T02:45:21+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"HTML Mail lets you theme your email messages the same way you theme the rest of your website.\r\n\u003C!--break--\u003E\r\n\r\n\u003Ch3\u003EHTML Mail for D10\u003C\/h3\u003E\r\n\r\nemartoni and RenatoG have ported HTML Mail to D9\/D10, and TR has done a great job to fix bugs, improve the structure and help everywhere -- thanks a lot to all of you!\r\n\r\nWe also need feedback on \/ help with the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/html-mail\u0022\u003ED10 documentation\u003C\/a\u003E written by emartoni.\r\n\r\n\u003Cstrong\u003EPlease note that the active branch is 4.0.x which is compatible with Drupal 9.x through 10.1.x and likely 10.2.x also!\u003C\/strong\u003E\r\n\r\n\u003Ch3\u003EHTML Mail for D10\u003C\/h3\u003E\r\n\u003Ch3 id=\u0022installation-D10\u0022\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/extending-drupal\/installing-modules\u0022\u003EInstallation (D10)\u003C\/a\u003E\u003C\/h3\u003E\r\n\r\nhtmlmail works for current releases of D10 it is recommended for those for those who are not already using htmlmail to consider \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/symfony_mailer\u0022\u003E\u003Cstrong\u003ESymfony Mailer\u003C\/strong\u003E\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/symfony_mailer_lite\u0022\u003ESymfony Mailer Lite\u003C\/a\u003E instead.\r\n\r\n\u003Ch3\u003EHTML Mail for D7\u003C\/h3\u003E\r\n\r\n\u003Cdl\u003E\u003Cdt\u003ENOTE:\u003C\/dt\u003E\r\n\u003Cdd\u003EFor the most up-to-date documentation, always refer to the README files in the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022\u003EHTML Mail\u003C\/a\u003E module directory:\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/htmlmail\/-\/blob\/7.x-2.x\/README.markdown\u0022\u003EREADME for 7.x-2.x\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\u003C\/dd\u003E\r\n\u003C\/dl\u003E\r\n\r\n\u003Ch3 id=\u0022requirements\u0022\u003ERequirements\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022\u003EMail System\u003C\/a\u003E\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022installation\u0022\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/extend\/installing-modules\u0022\u003EInstallation (D7)\u003C\/a\u003E \u003C\/h3\u003E\r\n\u003Cp\u003EThe following additional modules, while not required, are highly recommended:\u003C\/p\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\r\n    \u003Cdl\u003E\r\n      \u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022\u003EEcho\u003C\/a\u003E\u003C\/dt\u003E\r\n      \u003Cdd\u003EWraps your messages in a drupal theme. Now you can \u0022brand\u0022 your messages with the same logo, header, fonts, and styles as your website.\u003C\/dd\u003E\r\n    \u003C\/dl\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cdl\u003E\r\n      \u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/emogrifier\u0022\u003EEmogrifier\u003C\/a\u003E\u003C\/dt\u003E\r\n      \u003Cdd\u003EConverts stylesheets to inline style rules, for consistent display on mobile devices and webmail.\u003C\/dd\u003E\r\n    \u003C\/dl\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cdl\u003E\r\n      \u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailmime\u0022\u003EMail MIME\u003C\/a\u003E\u003C\/dt\u003E\r\n      \u003Cdd\u003EProvides a text\/plain alternative to text\/html emails, and automatically converts image references to inline image attachments.\u003C\/dd\u003E\r\n    \u003C\/dl\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cdl\u003E\r\n      \u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/pathologic\u0022\u003EPathologic\u003C\/a\u003E\u003C\/dt\u003E\r\n      \u003Cdd\u003EConverts urls from relative to absolute, so clickable links in your email messages work as intended.\u003C\/dd\u003E\r\n    \u003C\/dl\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cdl\u003E\r\n      \u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/transliteration\u0022\u003ETransliteration\u003C\/a\u003E\u003C\/dt\u003E\r\n      \u003Cdd\u003E\r\n        \u003Cp\u003EConverts non-ASCII characters to their US-ASCII equivalents, such as from Microsoft \u0022smart-quotes\u0022 to regular quotes.\u003C\/p\u003E\r\n      \u003C\/dd\u003E\r\n    \u003C\/dl\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022updating-from-previous-versions\u0022\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/250790\u0022\u003EUpdating from previous versions\u003C\/a\u003E\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003ECheck the module dependencies, as they have changed. The latest version of \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022\u003EHTML Mail\u003C\/a\u003E depends on:\u003C\/p\u003E\r\n    \u003Cul\u003E\r\n      \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022\u003EMail System\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003C\/ul\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003ERun \u003Ccode\u003Eupdate.php\u003C\/code\u003E \u003Cem\u003Eimmediately\u003C\/em\u003E after uploading new code.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EThe user-interface for adding email header and footer text has been removed. Headers and footers may be added by template files and\/or by enabling the \u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022\u003EEcho\u003C\/a\u003E module.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EAny customized filters should be carefully tested, as some of the template variables have changed. Full documentation is provided both on the module configuration page (Click on the \u003Cu\u003EInstructions\u003C\/u\u003E link) and as comments within the \u003Ccode\u003Ehtmlmail.tpl.php\u003C\/code\u003E file itself.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EAny combination of \u003Ca href=\u0022https:\/\/drupal.org\/project\/modules\/?filters=type%3Aproject_project%20tid%3A63%20hash%3A1hbejm%20-bs_project_sandbox%3A1%20bs_project_has_releases%3A1\u0022\u003Eover 200 filter modules\u003C\/a\u003E may be used to create an email-specific \u003Ca href=\u0022http:\/\/drupal.org\/node\/779050\u0022\u003Etext format\u003C\/a\u003E for post-template filtering.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EFull MIME handling, including automatic generation of a plaintext alternative part and conversion of image references to inline image attachments, is available simply by enabling the \u003Ca href=\u0022http:\/\/drupal.org\/project\/mailmime\u0022\u003EMail MIME\u003C\/a\u003E module.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022configuration\u0022\u003E\u003Ca href=\u0022http:\/\/drupal.org\/files\/images\/htmlmail_settings_2.thumbnail.png\u0022\u003EConfiguration\u003C\/a\u003E\u003C\/h3\u003E\r\n\u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022\u003EMail System\u003C\/a\u003E settings page at \u003Ccode\u003E\/admin\/config\/mailsystem (D10)\u003C\/code\u003E \/ \u003Ccode\u003E\/admin\/settings\/mailsystem (D7)\u003C\/code\u003E to select which parts of Drupal will use \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022\u003EHTML Mail\u003C\/a\u003E instead of the \u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--system--system.mail.inc\/class\/DefaultMailSystem\/7\u0022\u003Edefault\u003C\/a\u003E \u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/includes--mail.inc\/function\/drupal_mail_system\/7\u0022\u003Email system\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022\u003EHTML Mail\u003C\/a\u003E settings page at \u003Ccode\u003E\/admin\/settings\/htmlmail\u003C\/code\u003E to select a theme and post-filter for your messages.\u003C\/p\u003E\r\n\u003Ch3 id=\u0022theming\u0022\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022\u003ETheming\u003C\/a\u003E\u003C\/h3\u003E\r\n\u003Cp\u003EThe email message text goes through three transformations before sending:\u003C\/p\u003E\r\n\u003Col style=\u0022list-style-type: decimal\u0022\u003E\r\n  \u003Cli\u003E\r\n    \u003Ch3\u003ETemplate File\u003C\/h3\u003E\r\n    \u003Cp\u003EA template file is applied to your message header, subject, and body text. The default template is the included \u003Ccode\u003Ehtmlmail.tpl.php\u003C\/code\u003E file. You may copy this file to your \u003Ccite\u003Eemail theme\u003C\/cite\u003E directory (selected below), and use it to customize the contents and formatting of your messages. The comments within that file contain complete documentation on its usage.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Ch3\u003ETheming\u003C\/h3\u003E\r\n    \u003Cp\u003EYou may choose a theme that will hold your templates from Step 1 above. If the \u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022\u003EEcho\u003C\/a\u003E module is installed, this theme will also be used to wrap your templated text in a webpage. You use any one of \u003Ca href=\u0022https:\/\/drupal.org\/project\/themes\u0022\u003Eover 800\u003C\/a\u003E themes to style your messages, or \u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022\u003Ecreate your own\u003C\/a\u003E for even more power and flexibility.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Ch3\u003EPost-filtering\u003C\/h3\u003E\r\n    \u003Cp\u003EYou may choose a \u003Ca href=\u0022http:\/\/drupal.org\/node\/779050\u0022\u003Etext format\u003C\/a\u003E to be used for filtering email messages \u003Cem\u003Eafter\u003C\/em\u003E theming. This allows you to use any combination of \u003Ca href=\u0022https:\/\/drupal.org\/project\/modules\/?filters=type%3Aproject_project%20tid%3A63%20hash%3A1hbejm%20-bs_project_sandbox%3A1%20bs_project_has_releases%3A1\u0022\u003Eover 200 filter modules\u003C\/a\u003E to make final changes to your message before sending.\u003C\/p\u003E\r\n    \u003Cp\u003EHere is a recommended configuration:\u003C\/p\u003E\r\n    \u003Cul\u003E\r\n      \u003Cli\u003E\r\n        \u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/emogrifier\u0022\u003EEmogrifier\u003C\/a\u003E Converts stylesheets to inline style rules for consistent display on mobile devices and webmail.\u003C\/p\u003E\r\n      \u003C\/li\u003E\r\n      \u003Cli\u003E\r\n        \u003Cp\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/transliteration\u0022\u003ETransliteration\u003C\/a\u003E Converts non-ASCII text to US-ASCII equivalents. This helps prevent Microsoft \u0022smart-quotes\u0022 from appearing as question-marks in Mozilla Thunderbird.\u003C\/p\u003E\r\n      \u003C\/li\u003E\r\n      \u003Cli\u003E\r\n        \u003Cp\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/pathologic\u0022\u003EPathologic\u003C\/a\u003E Converts relative URLS to absolute URLS so that clickable links in your message will work as intended.\u003C\/p\u003E\r\n      \u003C\/li\u003E\r\n    \u003C\/ul\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3 id=\u0022troubleshooting\u0022\u003ETroubleshooting\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003ECheck the \u003Ca href=\u0022https:\/\/drupal.org\/node\/1124376\u0022\u003Eonline documentation\u003C\/a\u003E, especially the \u003Ca href=\u0022https:\/\/drupal.org\/node\/1124934\u0022\u003Escreenshots\u003C\/a\u003E.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EThere is a special documentation page for \u003Ca href=\u0022https:\/\/drupal.org\/node\/1200142\u0022\u003EUsing HTML Mail together with SMTP Authentication Support\u003C\/a\u003E.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/simplenews\u0022\u003ESimplenews\u003C\/a\u003E users attempting advanced theming should read \u003Ca href=\u0022http:\/\/drupal.org\/node\/1260178\u0022\u003Ethis page\u003C\/a\u003E.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EDouble-check the \u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022\u003EMail System\u003C\/a\u003E module settings and and make sure you selected \u003Cu\u003E\u003Ccode\u003EHTMLMailSystem\u003C\/code\u003E\u003C\/u\u003E for your \u003Cu\u003ESite-wide default mail system\u003C\/u\u003E.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003ETry selecting the \u003Cu\u003E\u003Ccode\u003E[ ]\u003C\/code\u003E \u003Cem\u003E(Optional)\u003C\/em\u003E Debug\u003C\/u\u003E checkbox at the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022\u003EHTML Mail\u003C\/a\u003E module settings page and re-sending your message.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EClear your cache after changing any \u003Cu\u003E\u003Ccode\u003E.tpl.php\u003C\/code\u003E\u003C\/u\u003E files.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EIf you use a post-filter, make sure your filter settings page looks like \u003Ca href=\u0022https:\/\/drupal.org\/node\/1130960\u0022\u003Ethis\u003C\/a\u003E.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/issues\/htmlmail\u0022\u003Eissue queue\u003C\/a\u003E for support and feature requests.\u003C\/p\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022related-modules\u0022\u003ERelated Modules\u003C\/h3\u003E\r\n\u003Cdl\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EEcho\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/echo\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EEmogrifier\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/emogrifier\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EHTML Purifier\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/htmlpurifier\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EhtmLawed\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/htmlawed\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EMail MIME\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/mailmime\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EMail System\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/mailsystem\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003EPathologic\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/pathologic\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003ETransliteration\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003Ehttps:\/\/drupal.org\/project\/transliteration\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n\u003C\/dl\u003E\r\n\u003Ch3 id=\u0022documentation\u0022\u003EDocumentation\u003C\/h3\u003E\r\n\u003Cp\u003E**\u003Ca href=\u0022https:\/\/drupal.org\/node\/1124376\u0022\u003EHTML Mail\u003C\/a\u003E\u003C\/p\u003E\r\n\u003Cdl\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--filter--filter.module\/6\u0022\u003Efilter.module\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003E\u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--filter--filter.module\/6\u0022\u003Eapi.drupal.org\/api\/drupal\/modules--filter--filter.module\u003C\/a\u003E\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/install\/modules-themes\/modules-5-6\u0022\u003EInstalling contributed modules\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/install\/modules-themes\/modules-5-6\u0022\u003Edrupal.org\/documentation\/install\/modules-themes\/modules-5-6\u003C\/a\u003E\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n  \u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022\u003ETheming guide\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\r\n  \u003Cdd\u003E\r\n    \u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022\u003Edrupal.org\/documentation\/theme\u003C\/a\u003E\u003C\/p\u003E\r\n  \u003C\/dd\u003E\r\n\u003C\/dl\u003E\r\n\u003Ch3 id=\u0022original-author\u0022\u003EOriginal Author\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/user\/1171\u0022\u003EChris Herberte\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022prior-maintainer\u0022\u003EPrior Maintainers\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/user\/36148\u0022\u003EBob Vincent\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/salvis\u0022\u003Esalvis (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022current-maintainer\u0022\u003ECurrent Maintainers\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/TR\u0022\u003ETR (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/renatog\u0022\u003ERenatoG (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/emartoni\u0022\u003Eemartoni (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EHTML Mail lets you theme your email messages the same way you theme the rest of your website.\u003C\/p\u003E\n\u003Ch3 id=\u0022html-mail-for-d10\u0022\u003EHTML Mail for D10\u003C\/h3\u003E\n\u003Cp\u003Eemartoni and RenatoG have ported HTML Mail to D9\/D10, and TR has done a great job to fix bugs, improve the structure and help everywhere -- thanks a lot to all of you!\u003C\/p\u003E\n\u003Cp\u003EWe also need feedback on \/ help with the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/html-mail\u0022 rel=\u0022nofollow\u0022\u003ED10 documentation\u003C\/a\u003E written by emartoni.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EPlease note that the active branch is 4.0.x which is compatible with Drupal 9.x through 10.1.x and likely 10.2.x also!\u003C\/strong\u003E\u003C\/p\u003E\n\u003Ch3 id=\u0022html-mail-for-d10-01\u0022\u003EHTML Mail for D10\u003C\/h3\u003E\n\u003Ch3 id=\u0022installation-D10-01\u0022\u003EInstallation (D10)\u003C\/h3\u003E\n\u003Cp\u003Ehtmlmail works for current releases of D10 it is recommended for those for those who are not already using htmlmail to consider \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/symfony_mailer\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003ESymfony Mailer\u003C\/strong\u003E\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/symfony_mailer_lite\u0022 rel=\u0022nofollow\u0022\u003ESymfony Mailer Lite\u003C\/a\u003E instead.\u003C\/p\u003E\n\u003Ch3 id=\u0022html-mail-for-d7\u0022\u003EHTML Mail for D7\u003C\/h3\u003E\n\u003Cdl\u003E\n\u003Cdt\u003ENOTE:\u003C\/dt\u003E\n\u003Cdd\u003EFor the most up-to-date documentation, always refer to the README files in the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E module directory:\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/htmlmail\/-\/blob\/7.x-2.x\/README.markdown\u0022 rel=\u0022nofollow\u0022\u003EREADME for 7.x-2.x\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003Ch3 id=\u0022requirements-01\u0022\u003ERequirements\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022 rel=\u0022nofollow\u0022\u003EMail System\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022installation-01\u0022\u003EInstallation (D7) \u003C\/h3\u003E\n\u003Cp\u003EThe following additional modules, while not required, are highly recommended:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022 rel=\u0022nofollow\u0022\u003EEcho\u003C\/a\u003E\u003C\/dt\u003E\n\u003Cdd\u003EWraps your messages in a drupal theme. Now you can \u0022brand\u0022 your messages with the same logo, header, fonts, and styles as your website.\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/emogrifier\u0022 rel=\u0022nofollow\u0022\u003EEmogrifier\u003C\/a\u003E\u003C\/dt\u003E\n\u003Cdd\u003EConverts stylesheets to inline style rules, for consistent display on mobile devices and webmail.\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailmime\u0022 rel=\u0022nofollow\u0022\u003EMail MIME\u003C\/a\u003E\u003C\/dt\u003E\n\u003Cdd\u003EProvides a text\/plain alternative to text\/html emails, and automatically converts image references to inline image attachments.\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/pathologic\u0022 rel=\u0022nofollow\u0022\u003EPathologic\u003C\/a\u003E\u003C\/dt\u003E\n\u003Cdd\u003EConverts urls from relative to absolute, so clickable links in your email messages work as intended.\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/transliteration\u0022 rel=\u0022nofollow\u0022\u003ETransliteration\u003C\/a\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003EConverts non-ASCII characters to their US-ASCII equivalents, such as from Microsoft \u0022smart-quotes\u0022 to regular quotes.\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022updating-from-previous-versions-01\u0022\u003EUpdating from previous versions\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n\u003Cp\u003ECheck the module dependencies, as they have changed. The latest version of \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E depends on:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022 rel=\u0022nofollow\u0022\u003EMail System\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003ERun \u003Ccode\u003Eupdate.php\u003C\/code\u003E \u003Cem\u003Eimmediately\u003C\/em\u003E after uploading new code.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EThe user-interface for adding email header and footer text has been removed. Headers and footers may be added by template files and\/or by enabling the \u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022 rel=\u0022nofollow\u0022\u003EEcho\u003C\/a\u003E module.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EAny customized filters should be carefully tested, as some of the template variables have changed. Full documentation is provided both on the module configuration page (Click on the \u003Cu\u003EInstructions\u003C\/u\u003E link) and as comments within the \u003Ccode\u003Ehtmlmail.tpl.php\u003C\/code\u003E file itself.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EAny combination of \u003Ca href=\u0022https:\/\/drupal.org\/project\/modules\/?filters=type%3Aproject_project%20tid%3A63%20hash%3A1hbejm%20-bs_project_sandbox%3A1%20bs_project_has_releases%3A1\u0022 rel=\u0022nofollow\u0022\u003Eover 200 filter modules\u003C\/a\u003E may be used to create an email-specific \u003Ca href=\u0022http:\/\/drupal.org\/node\/779050\u0022 rel=\u0022nofollow\u0022\u003Etext format\u003C\/a\u003E for post-template filtering.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EFull MIME handling, including automatic generation of a plaintext alternative part and conversion of image references to inline image attachments, is available simply by enabling the \u003Ca href=\u0022http:\/\/drupal.org\/project\/mailmime\u0022 rel=\u0022nofollow\u0022\u003EMail MIME\u003C\/a\u003E module.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022configuration-01\u0022\u003EConfiguration\u003C\/h3\u003E\n\u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022 rel=\u0022nofollow\u0022\u003EMail System\u003C\/a\u003E settings page at \u003Ccode\u003E\/admin\/config\/mailsystem (D10)\u003C\/code\u003E \/ \u003Ccode\u003E\/admin\/settings\/mailsystem (D7)\u003C\/code\u003E to select which parts of Drupal will use \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E instead of the \u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--system--system.mail.inc\/class\/DefaultMailSystem\/7\u0022 rel=\u0022nofollow\u0022\u003Edefault\u003C\/a\u003E \u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/includes--mail.inc\/function\/drupal_mail_system\/7\u0022 rel=\u0022nofollow\u0022\u003Email system\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E settings page at \u003Ccode\u003E\/admin\/settings\/htmlmail\u003C\/code\u003E to select a theme and post-filter for your messages.\u003C\/p\u003E\n\u003Ch3 id=\u0022theming-01\u0022\u003ETheming\u003C\/h3\u003E\n\u003Cp\u003EThe email message text goes through three transformations before sending:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003E\n\u003Ch3 id=\u0022template-file\u0022\u003ETemplate File\u003C\/h3\u003E\n\u003Cp\u003EA template file is applied to your message header, subject, and body text. The default template is the included \u003Ccode\u003Ehtmlmail.tpl.php\u003C\/code\u003E file. You may copy this file to your \u003Ccite\u003Eemail theme\u003C\/cite\u003E directory (selected below), and use it to customize the contents and formatting of your messages. The comments within that file contain complete documentation on its usage.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Ch3 id=\u0022theming-02\u0022\u003ETheming\u003C\/h3\u003E\n\u003Cp\u003EYou may choose a theme that will hold your templates from Step 1 above. If the \u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022 rel=\u0022nofollow\u0022\u003EEcho\u003C\/a\u003E module is installed, this theme will also be used to wrap your templated text in a webpage. You use any one of \u003Ca href=\u0022https:\/\/drupal.org\/project\/themes\u0022 rel=\u0022nofollow\u0022\u003Eover 800\u003C\/a\u003E themes to style your messages, or \u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022 rel=\u0022nofollow\u0022\u003Ecreate your own\u003C\/a\u003E for even more power and flexibility.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Ch3 id=\u0022post-filtering\u0022\u003EPost-filtering\u003C\/h3\u003E\n\u003Cp\u003EYou may choose a \u003Ca href=\u0022http:\/\/drupal.org\/node\/779050\u0022 rel=\u0022nofollow\u0022\u003Etext format\u003C\/a\u003E to be used for filtering email messages \u003Cem\u003Eafter\u003C\/em\u003E theming. This allows you to use any combination of \u003Ca href=\u0022https:\/\/drupal.org\/project\/modules\/?filters=type%3Aproject_project%20tid%3A63%20hash%3A1hbejm%20-bs_project_sandbox%3A1%20bs_project_has_releases%3A1\u0022 rel=\u0022nofollow\u0022\u003Eover 200 filter modules\u003C\/a\u003E to make final changes to your message before sending.\u003C\/p\u003E\n\u003Cp\u003EHere is a recommended configuration:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/emogrifier\u0022 rel=\u0022nofollow\u0022\u003EEmogrifier\u003C\/a\u003E Converts stylesheets to inline style rules for consistent display on mobile devices and webmail.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/transliteration\u0022 rel=\u0022nofollow\u0022\u003ETransliteration\u003C\/a\u003E Converts non-ASCII text to US-ASCII equivalents. This helps prevent Microsoft \u0022smart-quotes\u0022 from appearing as question-marks in Mozilla Thunderbird.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/pathologic\u0022 rel=\u0022nofollow\u0022\u003EPathologic\u003C\/a\u003E Converts relative URLS to absolute URLS so that clickable links in your message will work as intended.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ch3 id=\u0022troubleshooting-01\u0022\u003ETroubleshooting\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\n\u003Cp\u003ECheck the \u003Ca href=\u0022https:\/\/drupal.org\/node\/1124376\u0022 rel=\u0022nofollow\u0022\u003Eonline documentation\u003C\/a\u003E, especially the \u003Ca href=\u0022https:\/\/drupal.org\/node\/1124934\u0022 rel=\u0022nofollow\u0022\u003Escreenshots\u003C\/a\u003E.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EThere is a special documentation page for \u003Ca href=\u0022https:\/\/drupal.org\/node\/1200142\u0022 rel=\u0022nofollow\u0022\u003EUsing HTML Mail together with SMTP Authentication Support\u003C\/a\u003E.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/simplenews\u0022 rel=\u0022nofollow\u0022\u003ESimplenews\u003C\/a\u003E users attempting advanced theming should read \u003Ca href=\u0022http:\/\/drupal.org\/node\/1260178\u0022 rel=\u0022nofollow\u0022\u003Ethis page\u003C\/a\u003E.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EDouble-check the \u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022 rel=\u0022nofollow\u0022\u003EMail System\u003C\/a\u003E module settings and and make sure you selected \u003Cu\u003E\u003Ccode\u003EHTMLMailSystem\u003C\/code\u003E\u003C\/u\u003E for your \u003Cu\u003ESite-wide default mail system\u003C\/u\u003E.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003ETry selecting the \u003Cu\u003E\u003Ccode\u003E[ ]\u003C\/code\u003E \u003Cem\u003E(Optional)\u003C\/em\u003E Debug\u003C\/u\u003E checkbox at the \u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E module settings page and re-sending your message.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EClear your cache after changing any \u003Cu\u003E\u003Ccode\u003E.tpl.php\u003C\/code\u003E\u003C\/u\u003E files.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EIf you use a post-filter, make sure your filter settings page looks like \u003Ca href=\u0022https:\/\/drupal.org\/node\/1130960\u0022 rel=\u0022nofollow\u0022\u003Ethis\u003C\/a\u003E.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\n\u003Cp\u003EVisit the \u003Ca href=\u0022https:\/\/drupal.org\/project\/issues\/htmlmail\u0022 rel=\u0022nofollow\u0022\u003Eissue queue\u003C\/a\u003E for support and feature requests.\u003C\/p\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022related-modules-01\u0022\u003ERelated Modules\u003C\/h3\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Cstrong\u003EEcho\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/echo\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/echo\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EEmogrifier\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/emogrifier\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/emogrifier\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EHTML Purifier\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlpurifier\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/htmlpurifier\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EhtmLawed\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/htmlawed\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/htmlawed\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EMail MIME\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailmime\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/mailmime\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EMail System\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/mailsystem\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/mailsystem\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003EPathologic\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/pathologic\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/pathologic\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003ETransliteration\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/transliteration\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/drupal.org\/project\/transliteration\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003Ch3 id=\u0022documentation-01\u0022\u003EDocumentation\u003C\/h3\u003E\n\u003Cp\u003E**\u003Ca href=\u0022https:\/\/drupal.org\/node\/1124376\u0022 rel=\u0022nofollow\u0022\u003EHTML Mail\u003C\/a\u003E\u003C\/p\u003E\n\u003Cdl\u003E\n\u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--filter--filter.module\/6\u0022 rel=\u0022nofollow\u0022\u003Efilter.module\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/api.drupal.org\/api\/drupal\/modules--filter--filter.module\/6\u0022 rel=\u0022nofollow\u0022\u003Eapi.drupal.org\/api\/drupal\/modules--filter--filter.module\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/install\/modules-themes\/modules-5-6\u0022 rel=\u0022nofollow\u0022\u003EInstalling contributed modules\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/install\/modules-themes\/modules-5-6\u0022 rel=\u0022nofollow\u0022\u003Edrupal.org\/documentation\/install\/modules-themes\/modules-5-6\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003Cdt\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022 rel=\u0022nofollow\u0022\u003ETheming guide\u003C\/a\u003E\u003C\/strong\u003E\u003C\/dt\u003E\n\u003Cdd\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/drupal.org\/documentation\/theme\u0022 rel=\u0022nofollow\u0022\u003Edrupal.org\/documentation\/theme\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003Ch3 id=\u0022original-author-01\u0022\u003EOriginal Author\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/user\/1171\u0022 rel=\u0022nofollow\u0022\u003EChris Herberte\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022prior-maintainer-01\u0022\u003EPrior Maintainers\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/user\/36148\u0022 rel=\u0022nofollow\u0022\u003EBob Vincent\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/salvis\u0022 rel=\u0022nofollow\u0022\u003Esalvis (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022current-maintainer-01\u0022\u003ECurrent Maintainers\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/TR\u0022 rel=\u0022nofollow\u0022\u003ETR (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/renatog\u0022 rel=\u0022nofollow\u0022\u003ERenatoG (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/u\/emartoni\u0022 rel=\u0022nofollow\u0022\u003Eemartoni (co-maintainer)\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00226.x-1.x\u0022:32,\u00225.x-1.x\u0022:2,\u00227.x-2.x\u0022:14219,\u00226.x-2.x\u0022:76,\u00228.x-3.x\u0022:1485,\u00224.x\u0022:1,\u00224.0.x\u0022:236}","field_active_installs_total":16051,"field_composer_namespace":"drupal\/htmlmail","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"htmlmail","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"b1ae8858-7741-422f-a770-06e48e776054","meta":{"drupal_internal__target_id":36148}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/uid?resourceVersion=id%3A20006433"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/relationships\/uid?resourceVersion=id%3A20006433"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/field_development_status?resourceVersion=id%3A20006433"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/relationships\/field_development_status?resourceVersion=id%3A20006433"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","meta":{"drupal_internal__target_id":27269}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/field_maintenance_status?resourceVersion=id%3A20006433"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/relationships\/field_maintenance_status?resourceVersion=id%3A20006433"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/field_module_categories?resourceVersion=id%3A20006433"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/relationships\/field_module_categories?resourceVersion=id%3A20006433"}}},"field_project_images":{"data":[{"type":"file--file","id":"552b35c8-44da-4d27-9928-82ef88ed4412","meta":{"alt":"Test message","title":null,"width":356,"height":327,"drupal_internal__target_id":3581}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/field_project_images?resourceVersion=id%3A20006433"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/ebedee07-3465-4cd8-a0b1-eca154436ca0\/relationships\/field_project_images?resourceVersion=id%3A20006433"}}}}},{"type":"node--project_module","id":"f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2?resourceVersion=id%3A20012840"}},"attributes":{"drupal_internal__nid":1076370,"status":true,"title":"Commerce Shipping","created":"2011-02-28T18:41:18+00:00","changed":"2025-01-06T05:20:03+00:00","body":{"value":"Commerce Shipping provides a shipping rate calculation system for \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce\u0022\u003EDrupal Commerce\u003C\/a\u003E, integrating shipping service selection into both the checkout form and order edit form. This module is a framework that is meant to be used in conjunction with shipping method modules like \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_flat_rate\u0022\u003ECommerce Flat Rate\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_ups\u0022\u003ECommerce UPS\u003C\/a\u003E, and others.\r\n\r\nShipping service availability and rate calculation is handled in the user interface through Rules and is backed up by an API that gives you a high level of flexibility to implement simple or complex shipping scenarios.\r\n\r\nDevelopers and users of this module should use the new and improved Commerce Shipping 2.x version. Sites created using Commerce Shipping 1.x can find notes on what has changed and how to update in the \u003Ca href=\u0022http:\/\/drupal.org\/node\/1841266\u0022\u003Erelease notes\u003C\/a\u003E for the Commerce Shipping 2.0 release.\r\n\r\nDevelopment sponsored by \u003Ca href=\u0022http:\/\/revealit.dk\u0022\u003EReveal IT\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/www.centarro.io\u0022\u003ECentarro\u003C\/a\u003E.\r\n\u003C!--break--\u003E\r\n\r\n\u003Ch3\u003EJust getting started?\u003C\/h3\u003E\r\n\r\nWe are still adding to the Commerce Shipping 2.0 \u003Ca href=\u0022http:\/\/www.drupalcommerce.org\/commerce-kickstart-2\/shipping\u0022\u003Euser documentation\u003C\/a\u003E, and there is also a set of screencasts you can watch to learn about the following topics:\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/246\u0022\u003EIntroduction to Commerce Shipping\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/247\u0022\u003EIntroduction to Commerce UPS\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/248\u0022\u003EImplementing free shipping based on order total \/ user role\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/249\u0022\u003EImplementing per-item shipping using rate calculation rules\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/250\u0022\u003EImplementing a discount based on an item in the cart\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nIf you can\u0027t find what you need in the documentation or screencasts, consider searching the issue queues or \u003Ca href=\u0022https:\/\/drupal.stackexchange.com\/\u0022\u003EDrupal Answers\u003C\/a\u003E (using the drupal-commerce tag) to see if your question has been dealt with. General Rules inquiries should not be posted to this module\u0027s issue queue. You can always find help on \u003Ca href=\u0022https:\/\/www.drupal.org\/slack\u0022\u003EDrupal Slack\u003C\/a\u003E in the #commerce channel.\r\n\r\n\u003Ch3\u003EShipping method modules\u003C\/h3\u003E\r\n\r\nThese modules have been designed to work with Commerce Shipping 2.x. Some require API credentials to retrieve calculated rates from shipping carriers, like UPS and USPS, while modules like Flat Rate simply let you define shipping services on your site with flat base rates that can be manipulated further through Rules.\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_flat_rate\u0022\u003ECommerce Flat Rate\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_ups\u0022\u003ECommerce UPS\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_fedex\u0022\u003ECommerce FedEx\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_usps\u0022\u003ECommerce USPS\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/1356090\u0022\u003ECommerce Canada Post\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_connectship\u0022\u003ECommerce ConnectShip\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_kiala\u0022\u003ECommerce Kiala\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nIf you know of a shipping method module that isn\u0027t listed here, please let us know in an issue.\r\n\r\nAdditional shipping related contributed modules include:\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_cp\u0022\u003ECommerce Cart Pane\u003C\/a\u003E (embed the shipping pane on the shopping cart page)\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_cart_estimate\u0022\u003ECommerce Cart Estimate\u003C\/a\u003E (estimate shipping and taxes on the cart page)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EDeveloper documentation\u003C\/h3\u003E\r\n\r\nDocumentation for developers can be found in the example module included in the project. It demonstrates how to define a shipping method and how to collect additional information from the user on the checkout form. If you use it as a starting point for your shipping method module, you should copy it to a new folder and rename it so you can continue to update Commerce Shipping 2.x as new releases are created.\r\n\r\nThe API documentation is currently inline and in commerce_shipping.api.php. We\u0027ll be providing a full developer overview as soon as possible.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003ECommerce Shipping provides a shipping rate calculation system for \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce\u0022 rel=\u0022nofollow\u0022\u003EDrupal Commerce\u003C\/a\u003E, integrating shipping service selection into both the checkout form and order edit form. This module is a framework that is meant to be used in conjunction with shipping method modules like \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_flat_rate\u0022 rel=\u0022nofollow\u0022\u003ECommerce Flat Rate\u003C\/a\u003E, \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_ups\u0022 rel=\u0022nofollow\u0022\u003ECommerce UPS\u003C\/a\u003E, and others.\u003C\/p\u003E\n\u003Cp\u003EShipping service availability and rate calculation is handled in the user interface through Rules and is backed up by an API that gives you a high level of flexibility to implement simple or complex shipping scenarios.\u003C\/p\u003E\n\u003Cp\u003EDevelopers and users of this module should use the new and improved Commerce Shipping 2.x version. Sites created using Commerce Shipping 1.x can find notes on what has changed and how to update in the \u003Ca href=\u0022http:\/\/drupal.org\/node\/1841266\u0022 rel=\u0022nofollow\u0022\u003Erelease notes\u003C\/a\u003E for the Commerce Shipping 2.0 release.\u003C\/p\u003E\n\u003Cp\u003EDevelopment sponsored by \u003Ca href=\u0022http:\/\/revealit.dk\u0022 rel=\u0022nofollow\u0022\u003EReveal IT\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/www.centarro.io\u0022 rel=\u0022nofollow\u0022\u003ECentarro\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ch3 id=\u0022just-getting-started\u0022\u003EJust getting started?\u003C\/h3\u003E\n\u003Cp\u003EWe are still adding to the Commerce Shipping 2.0 \u003Ca href=\u0022http:\/\/www.drupalcommerce.org\/commerce-kickstart-2\/shipping\u0022 rel=\u0022nofollow\u0022\u003Euser documentation\u003C\/a\u003E, and there is also a set of screencasts you can watch to learn about the following topics:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/246\u0022 rel=\u0022nofollow\u0022\u003EIntroduction to Commerce Shipping\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/247\u0022 rel=\u0022nofollow\u0022\u003EIntroduction to Commerce UPS\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/248\u0022 rel=\u0022nofollow\u0022\u003EImplementing free shipping based on order total \/ user role\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/249\u0022 rel=\u0022nofollow\u0022\u003EImplementing per-item shipping using rate calculation rules\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.commerceguys.com\/resources\/articles\/250\u0022 rel=\u0022nofollow\u0022\u003EImplementing a discount based on an item in the cart\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EIf you can\u0027t find what you need in the documentation or screencasts, consider searching the issue queues or \u003Ca href=\u0022https:\/\/drupal.stackexchange.com\/\u0022 rel=\u0022nofollow\u0022\u003EDrupal Answers\u003C\/a\u003E (using the drupal-commerce tag) to see if your question has been dealt with. General Rules inquiries should not be posted to this module\u0027s issue queue. You can always find help on \u003Ca href=\u0022https:\/\/www.drupal.org\/slack\u0022 rel=\u0022nofollow\u0022\u003EDrupal Slack\u003C\/a\u003E in the #commerce channel.\u003C\/p\u003E\n\u003Ch3 id=\u0022shipping-method-modules\u0022\u003EShipping method modules\u003C\/h3\u003E\n\u003Cp\u003EThese modules have been designed to work with Commerce Shipping 2.x. Some require API credentials to retrieve calculated rates from shipping carriers, like UPS and USPS, while modules like Flat Rate simply let you define shipping services on your site with flat base rates that can be manipulated further through Rules.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_flat_rate\u0022 rel=\u0022nofollow\u0022\u003ECommerce Flat Rate\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_ups\u0022 rel=\u0022nofollow\u0022\u003ECommerce UPS\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_fedex\u0022 rel=\u0022nofollow\u0022\u003ECommerce FedEx\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_usps\u0022 rel=\u0022nofollow\u0022\u003ECommerce USPS\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/1356090\u0022 rel=\u0022nofollow\u0022\u003ECommerce Canada Post\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_connectship\u0022 rel=\u0022nofollow\u0022\u003ECommerce ConnectShip\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_kiala\u0022 rel=\u0022nofollow\u0022\u003ECommerce Kiala\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EIf you know of a shipping method module that isn\u0027t listed here, please let us know in an issue.\u003C\/p\u003E\n\u003Cp\u003EAdditional shipping related contributed modules include:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_cp\u0022 rel=\u0022nofollow\u0022\u003ECommerce Cart Pane\u003C\/a\u003E (embed the shipping pane on the shopping cart page)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/commerce_cart_estimate\u0022 rel=\u0022nofollow\u0022\u003ECommerce Cart Estimate\u003C\/a\u003E (estimate shipping and taxes on the cart page)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022developer-documentation\u0022\u003EDeveloper documentation\u003C\/h3\u003E\n\u003Cp\u003EDocumentation for developers can be found in the example module included in the project. It demonstrates how to define a shipping method and how to collect additional information from the user on the checkout form. If you use it as a starting point for your shipping method module, you should copy it to a new folder and rename it so you can continue to update Commerce Shipping 2.x as new releases are created.\u003C\/p\u003E\n\u003Cp\u003EThe API documentation is currently inline and in commerce_shipping.api.php. We\u0027ll be providing a full developer overview as soon as possible.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00227.x-2.x\u0022:6723,\u00227.x-1.x\u0022:8,\u00228.x-2.x\u0022:8880}","field_active_installs_total":15611,"field_composer_namespace":"drupal\/commerce_shipping","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"commerce_shipping","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca","meta":{"drupal_internal__target_id":386230}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/uid?resourceVersion=id%3A20012840"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/relationships\/uid?resourceVersion=id%3A20012840"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/field_development_status?resourceVersion=id%3A20012840"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/relationships\/field_development_status?resourceVersion=id%3A20012840"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/field_maintenance_status?resourceVersion=id%3A20012840"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/relationships\/field_maintenance_status?resourceVersion=id%3A20012840"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/field_module_categories?resourceVersion=id%3A20012840"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/relationships\/field_module_categories?resourceVersion=id%3A20012840"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/field_project_images?resourceVersion=id%3A20012840"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f8cf6c9c-2bfd-42ab-830d-9b04bb049cd2\/relationships\/field_project_images?resourceVersion=id%3A20012840"}}}}},{"type":"node--project_module","id":"6f8d5b16-b15d-4f5c-b94c-c00c80210f2d","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d?resourceVersion=id%3A20051321"}},"attributes":{"drupal_internal__nid":3187132,"status":true,"title":"Editoria11y Accessibility Checker","created":"2020-12-08T01:52:59+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"\u003Cp\u003EEditoria11y (\u0022editorial accessibility ally\u0022) is built around three key needs for ongoing content quality assurance:\u003C\/p\u003E\r\n    \r\n\u003Col\u003E\r\n  \u003Cli\u003EIt checks \u003Cstrong\u003Eautomatically\u003C\/strong\u003E. Authors do not need be taught to (and remember to!) press a button or visit a dashboard.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\r\n  \u003Cli\u003EIt checks \u003Cstrong\u003Erendered content\u003C\/strong\u003E, allowing it to detect issues that only appear after Drupal assembles the page.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\r\n  \u003Cli\u003EIt focuses \u003Cstrong\u003Eexclusively on content issues\u003C\/strong\u003E: inserting alerts and tooltips to assist authors at fixing the things that are their responsibility, without confusing or annoying them with code or theme issues. Editoria11y is meant to supplement, not replace, \u003Ca href=\u0022https:\/\/webaim.org\/resources\/evalquickref\/\u0022\u003Etesting with comprehensive tools and real assistive devices\u003C\/a\u003E.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch2\u003EDemo\u003C\/h2\u003E\r\n\u003Cp\u003ENote that these show what an \u003Cstrong\u003E\u003Cem\u003Eauthor\u003C\/em\u003E\u003C\/strong\u003E would experience; the Editoria11y checker does not appear for anonymous users on a real site.\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/editoria11y.princeton.edu\/demo\/\u0022\u003E\u003Cstrong\u003EAuthor\u0027s view of the checker interactive demo\u003C\/strong\u003E\u003C\/a\u003E\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\r\n\u003Cli\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/jjameson.mycpanel.princeton.edu\/editoria11y\/admin\/reports\/editoria11y\u0022\u003ESite-wide report demo\u003C\/a\u003E\u003C\/strong\u003E\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/youtu.be\/9hev_6L8SPk?feature=shared\u0026t=764\u0022\u003E\u003Cstrong\u003EVideo tour: \u003C\/strong\u003E \u003Cbr\u003E\u003Cimg src=\u0022https:\/\/www.drupal.org\/files\/govcon-editoria11y.png\u0022 alt=\u0022Content creators want automatic accessibility checks\u0022 width=\u0022300\u0022\u003E\u003C\/a\u003E\u0026nbsp;\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EThe authoring experience\u003C\/h2\u003E\r\n\r\n\u003Cp\u003EWhen authenticated users with appropriate roles are viewing pages, Editoria11y\u0027s toggle indicates what was found (no issues, some definite issues found, only some manual checks needed):\u003C\/p\u003E\r\n\u003Cimg src=\u0022https:\/\/www.drupal.org\/files\/toggles_3.png\u0022 alt=\u0022toggle with no issues, 3 issues and 26 issues\u0022 \/\u003E\r\n\r\n\u003Cp\u003EWhen the toggle is clicked, alerts are placed on elements with issues, with tooltips that explain the problem and what actions are needed to resolve it. If the item might be a false positive, buttons are available to ignore the alert on this page for the current user or for all users (\u0022Mark as Checked and OK\u0022). By default, these alerts appear automatically the first time new issues are detected:\u003C\/p\u003E\r\n\r\n\u003Cimg src=\u0022\/files\/manual-check-needed.png\u0022 alt=\u0022Open tooltip indicating a manual check is needed for a link labelled only \u0022click here\u0022\u0022 \/\u003E\r\n\r\n\r\n\u003Cp\u003EThe main panel allows authors to step through the issues on the page, restore previously dismissed alerts, and visualize \u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/alternative-text\u0022\u003Etext alternatives for images on the page\u003C\/a\u003E (\u0022alts\u0022) and the \u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/headings\u0022\u003Edocument\u0027s heading outline\u003C\/a\u003E.\u003C\/p\u003E\r\n\r\n\u003Cimg src=\u0022\/files\/alt-text-visualization.png\u0022 alt=\u0022Alt text overlaid on an image, and shown on main panel in list of thumbnails\u0022 \/\u003E\r\n\r\n\u003Cp\u003EWhen sync is enabled, all issues detected can be reviewed in the Reports section of the administrative toolbar:\u003C\/p\u003E\r\n\u003Cimg src=\u0022\/files\/Screen%20Shot%202022-09-26%20at%2010.46.09%20AM.png\u0022 alt=\u0022Admin results tables showing most recent issues and issues organized by type.\u0022 \/\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Ch3\u003EThe tests\u003C\/h3\u003E\r\n\r\n\u003Cul\u003E\r\n\t\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/alternative-text\u0022\u003EText alternatives\u003C\/a\u003E\r\n\t\u003Cul\u003E\r\n\t\t\u003Cli\u003EImages with no alt text\u003C\/li\u003E\r\n\t\t\u003Cli\u003EImages with a filename as alt text\u003C\/li\u003E\r\n\t\t\u003Cli\u003EImages with very long alt text\u003C\/li\u003E\r\n\t\t\u003Cli\u003EAlt text that contains redundant text like \u201cimage of\u201d or \u201cphoto of\u201d\u003C\/li\u003E\r\n\t\t\u003Cli\u003EImages in links with alt text that appears to be describing the image instead of the link destination\u003C\/li\u003E\r\n\t\t\u003Cli\u003EEmbedded visualizations that usually require a text alternative\u003C\/li\u003E\r\n\t\u003C\/ul\u003E\r\n\t\u003C\/li\u003E\r\n\t\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/links\u0022\u003EMeaningful links\u003C\/a\u003E\r\n\t\u003Cul\u003E\r\n\t\t\u003Cli\u003ELinks with no text\u003C\/li\u003E\r\n\t\t\u003Cli\u003ELinks titled with a filename\u003C\/li\u003E\r\n\t\t\u003Cli\u003ELinks only titled with generic text: \u201cclick here,\u201d \u201clearn more,\u201d \u201cdownload,\u201d etc.\u003C\/li\u003E\r\n\t\t\u003Cli\u003ELinks that open in a new window without warning\u003C\/li\u003E\r\n\t\u003C\/ul\u003E\r\n\t\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/headings\u0022\u003EDocument outline and structure\u003C\/a\u003E\r\n\t\u003Cul\u003E\r\n\t\t\u003Cli\u003ESkipped heading levels\u003C\/li\u003E\r\n\t\t\u003Cli\u003EEmpty headings\u003C\/li\u003E\r\n\t\t\u003Cli\u003EVery long headings\u003C\/li\u003E\r\n                \u003Cli\u003ESuspiciously short blockquotes that may actually be headings\u003C\/li\u003E\r\n                \u003Cli\u003EAll-bold paragraphs with no punctuation that may actually be headings\u003C\/li\u003E\r\n                \u003Cli\u003ESuspicious formatting that should probably be converted to a list (asterisks and incrementing numbers\/letters prefixes)\u003C\/li\u003E\r\n\u003Cli\u003ETables without headers and tables with document headers (\u0022Header 3\u0022) instead of table headers (\u0026lt;th\u0026gt;)\u003C\/li\u003E\r\n\t\u003C\/ul\u003E\r\n\t\u003C\/li\u003E\r\n\u003Cli\u003EGeneral quality assurance\r\n\u003Cul\u003E\r\n\t\u003Cli\u003ELARGE QUANTITIES OF CAPS LOCK TEXT\u003C\/li\u003E\r\n\t\u003Cli\u003ELinks to PDFs and other documents, reminding the user to test the download for accessibility or provide an alternate, accessible format\u003C\/li\u003E\r\n\t\u003Cli\u003EVideo embeds, reminding the user to add closed captions\u003C\/li\u003E\r\n\t\u003Cli\u003EAudio embeds, reminding the user to provide a transcript\u003C\/li\u003E\r\n\t\u003Cli\u003ESocial media embeds, reminding the user to provide alt elements\u003C\/li\u003E\u003C\/ul\u003E\r\n\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\r\n\u003Ch2\u003EInstallation and configuration\u003C\/h2\u003E\r\n\r\n\u003Cp\u003EIf you are installing from the command line, do note the \u003Ca href=\u0022https:\/\/www.a11yproject.com\/\u0022\u003E\u0022eleventy\u0022\u003C\/a\u003E when spelling the module\u0027s name! Those are not L\u0027s.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EEditoria11y\u0027s default configuration should work decently out of the box on most sites, but the following things should be reviewed before telling content authors it is good to go:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EReview roles and permissions\u003C\/strong\u003E. Users must have the \u0022View Editoria11y Checker\u0022 permission to see the checker, and there are \u003Cstrong\u003Eseparate\u003C\/strong\u003E permissions to enable the \u0022ignore\u0022 and \u0022mark OK\u0022 buttons, and to review the site-wide reports. The module attempts to enable the first two by default on roles with common node edit permissions; you should add \u0022mark OK\u0022 to trusted roles and \u0022view dashboard\u0022 as you deem fit.\u003C\/li\u003E\r\n\u003Cli\u003ESelect a color theme that works well with your site. Light and dark are available in the GUI; custom colors can be injected using JS parameters.\u003C\/li\u003E\r\n\u003Cli\u003EOn the module configuration page, set the checker to check regions your editors can modify (e.g., \u0022main, #footer-content\u0022).\u003C\/li\u003E\r\n\u003Cli\u003EClick through key pages and at least one page for each content type on your site, paying special attention to custom views and embeds, to look for theme-level issues or false positives. Fix these issues before rolling the module out, or add selectors to the module configuration\u0027s \u0022skip over these elements\u0022 list to suppress repeated alerts (e.g., \u0022#sidebar-menu a, .custom-card-view h3\u0022). Please do not skip this step! You will prevent frustration for your editors, and viewing the nodes will populate your reporting dashboard.\u003C\/li\u003E\r\n\u003Cli\u003ETell us how it went! This module and its base library are both under active development. Send thoughts through the issue queue or find \u003Ccode\u003Eitmaybejj\u003C\/code\u003E on the Drupal Slack\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Cp\u003EThere are many additional configuration options available on the module page for more complicated situations: selectors for shadow components to check, changes to which document filetypes should be flagged, the ability to disable checking if certain selectors are present (code-only pages) or absent (user does not have an edit button on this content type), etc.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EThe ReadMe also details a method for developers to programmatically modify JS parameters at runtime, which can be used to inject custom defaults on multi-site installs, handle long skip-element lists without cluttering the GUI, modify the color scheme or even rewrite tooltip messages.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EAlso note that the library dispatches JavaScript events at key moments (scan finishes, panel opens, tooltip opens or shuts...), allowing developers to attach custom functionality. JavaScript on sites running Editoria11y can watch for these events to automatically open accordion widgets if they contain hidden alerts, to disable \u0022sticky\u0022 site menus when the panel opens, or even to sync the count and type of alerts found to third-party analytics platforms.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Ch2\u003ESee also\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EThe Editoria11y library is developed in parallel with the \u003Ca href=\u0022https:\/\/sa11y.netlify.app\/\u0022\u003ESa11y accessibility checker\u003C\/a\u003E, and they have almost identical core test suites. Editoria11y focuses on providing a minimalist GUI and provides additional admin-facing tools like site-wide reporting and dismissal governance; Sa11y provides additional author-facing tools like color checking and readability scoring. There is a \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/sa11y\u0022\u003EDrupal wrapper for Sa11y\u003C\/a\u003E.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/decorative_image_widget\u0022\u003EDecorative Image Widget\u003C\/a\u003E makes alt text required unless the user checks a box to affirm the image is decorative.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003ENote that modules that claim they can \u003Cstrong\u003E\u003Cem\u003Efix\u003C\/em\u003E\u003C\/strong\u003E issues automatically based on AI or the like, or provide untested at-runtime theme modifications, are \u003Ca href=\u0022https:\/\/overlayfactsheet.com\/\u0022\u003Enot recommended by many disabled Web users\u003C\/a\u003E.\u003C\/p\u003E\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\r\n\u003Ch2\u003EAdvanced configuration and custom tests\u003C\/h2\u003E\r\nThe \u003Ca href=\u0022https:\/\/editoria11y.princeton.edu\/configuration\/\u0022\u003E\u003Cstrong\u003Elibrary configuration guide\u003C\/strong\u003E\u003C\/a\u003E has details and examples for parameters not exposed in the GUI, including how to write custom tests and how to open tabs and accordions before highlighting hidden alerts. The \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/editoria11y\/-\/blob\/2.1.x\/README.md#extending-and-modifying-editorially\u0022\u003E\u003Cstrong\u003Emodule ReadMe has instructions for modifying these parameters\u003C\/strong\u003E\u003C\/a\u003E within a Drupal theme or module.\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EProject Info\u003C\/h2\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EEditoria11y (\u0022editorial accessibility ally\u0022) is built around three key needs for ongoing content quality assurance:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003EIt checks \u003Cstrong\u003Eautomatically\u003C\/strong\u003E. Authors do not need be taught to (and remember to!) press a button or visit a dashboard.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\n\u003Cli\u003EIt checks \u003Cstrong\u003Erendered content\u003C\/strong\u003E, allowing it to detect issues that only appear after Drupal assembles the page.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\n\u003Cli\u003EIt focuses \u003Cstrong\u003Eexclusively on content issues\u003C\/strong\u003E: inserting alerts and tooltips to assist authors at fixing the things that are their responsibility, without confusing or annoying them with code or theme issues. Editoria11y is meant to supplement, not replace, \u003Ca href=\u0022https:\/\/webaim.org\/resources\/evalquickref\/\u0022 rel=\u0022nofollow\u0022\u003Etesting with comprehensive tools and real assistive devices\u003C\/a\u003E.\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022demo\u0022\u003EDemo\u003C\/h2\u003E\n\u003Cp\u003ENote that these show what an \u003Cstrong\u003E\u003Cem\u003Eauthor\u003C\/em\u003E\u003C\/strong\u003E would experience; the Editoria11y checker does not appear for anonymous users on a real site.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/editoria11y.princeton.edu\/demo\/\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003EAuthor\u0027s view of the checker interactive demo\u003C\/strong\u003E\u003C\/a\u003E\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E\u003Ca href=\u0022https:\/\/jjameson.mycpanel.princeton.edu\/editoria11y\/admin\/reports\/editoria11y\u0022 rel=\u0022nofollow\u0022\u003ESite-wide report demo\u003C\/a\u003E\u003C\/strong\u003E\u003Cbr\u003E\u0026nbsp;\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/youtu.be\/9hev_6L8SPk?feature=shared\u0026amp;t=764\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003EVideo tour: \u003C\/strong\u003E \u003Cbr\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 width=\u002216\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/a\u003E\u0026nbsp;\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022the-authoring-experience\u0022\u003EThe authoring experience\u003C\/h2\u003E\n\u003Cp\u003EWhen authenticated users with appropriate roles are viewing pages, Editoria11y\u0027s toggle indicates what was found (no issues, some definite issues found, only some manual checks needed):\u003C\/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/p\u003E\n\u003Cp\u003EWhen the toggle is clicked, alerts are placed on elements with issues, with tooltips that explain the problem and what actions are needed to resolve it. If the item might be a false positive, buttons are available to ignore the alert on this page for the current user or for all users (\u0022Mark as Checked and OK\u0022). By default, these alerts appear automatically the first time new issues are detected:\u003C\/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/p\u003E\n\u003Cp\u003EThe main panel allows authors to step through the issues on the page, restore previously dismissed alerts, and visualize \u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/alternative-text\u0022 rel=\u0022nofollow\u0022\u003Etext alternatives for images on the page\u003C\/a\u003E (\u0022alts\u0022) and the \u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/headings\u0022 rel=\u0022nofollow\u0022\u003Edocument\u0027s heading outline\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/p\u003E\n\u003Cp\u003EWhen sync is enabled, all issues detected can be reviewed in the Reports section of the administrative toolbar:\u003C\/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ch3 id=\u0022the-tests\u0022\u003EThe tests\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/alternative-text\u0022 rel=\u0022nofollow\u0022\u003EText alternatives\u003C\/a\u003E\n\u003Cul\u003E\n\u003Cli\u003EImages with no alt text\u003C\/li\u003E\n\u003Cli\u003EImages with a filename as alt text\u003C\/li\u003E\n\u003Cli\u003EImages with very long alt text\u003C\/li\u003E\n\u003Cli\u003EAlt text that contains redundant text like \u201cimage of\u201d or \u201cphoto of\u201d\u003C\/li\u003E\n\u003Cli\u003EImages in links with alt text that appears to be describing the image instead of the link destination\u003C\/li\u003E\n\u003Cli\u003EEmbedded visualizations that usually require a text alternative\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/links\u0022 rel=\u0022nofollow\u0022\u003EMeaningful links\u003C\/a\u003E\n\u003Cul\u003E\n\u003Cli\u003ELinks with no text\u003C\/li\u003E\n\u003Cli\u003ELinks titled with a filename\u003C\/li\u003E\n\u003Cli\u003ELinks only titled with generic text: \u201cclick here,\u201d \u201clearn more,\u201d \u201cdownload,\u201d etc.\u003C\/li\u003E\n\u003Cli\u003ELinks that open in a new window without warning\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/accessibility.princeton.edu\/how\/content\/headings\u0022 rel=\u0022nofollow\u0022\u003EDocument outline and structure\u003C\/a\u003E\n\u003Cul\u003E\n\u003Cli\u003ESkipped heading levels\u003C\/li\u003E\n\u003Cli\u003EEmpty headings\u003C\/li\u003E\n\u003Cli\u003EVery long headings\u003C\/li\u003E\n\u003Cli\u003ESuspiciously short blockquotes that may actually be headings\u003C\/li\u003E\n\u003Cli\u003EAll-bold paragraphs with no punctuation that may actually be headings\u003C\/li\u003E\n\u003Cli\u003ESuspicious formatting that should probably be converted to a list (asterisks and incrementing numbers\/letters prefixes)\u003C\/li\u003E\n\u003Cli\u003ETables without headers and tables with document headers (\u0022Header 3\u0022) instead of table headers (\u0026lt;th\u0026gt;)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003Cli\u003EGeneral quality assurance\n\u003Cul\u003E\n\u003Cli\u003ELARGE QUANTITIES OF CAPS LOCK TEXT\u003C\/li\u003E\n\u003Cli\u003ELinks to PDFs and other documents, reminding the user to test the download for accessibility or provide an alternate, accessible format\u003C\/li\u003E\n\u003Cli\u003EVideo embeds, reminding the user to add closed captions\u003C\/li\u003E\n\u003Cli\u003EAudio embeds, reminding the user to provide a transcript\u003C\/li\u003E\n\u003Cli\u003ESocial media embeds, reminding the user to provide alt elements\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022installation-and-configuration\u0022\u003EInstallation and configuration\u003C\/h2\u003E\n\u003Cp\u003EIf you are installing from the command line, do note the \u003Ca href=\u0022https:\/\/www.a11yproject.com\/\u0022 rel=\u0022nofollow\u0022\u003E\u0022eleventy\u0022\u003C\/a\u003E when spelling the module\u0027s name! Those are not L\u0027s.\u003C\/p\u003E\n\u003Cp\u003EEditoria11y\u0027s default configuration should work decently out of the box on most sites, but the following things should be reviewed before telling content authors it is good to go:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003E\u003Cstrong\u003EReview roles and permissions\u003C\/strong\u003E. Users must have the \u0022View Editoria11y Checker\u0022 permission to see the checker, and there are \u003Cstrong\u003Eseparate\u003C\/strong\u003E permissions to enable the \u0022ignore\u0022 and \u0022mark OK\u0022 buttons, and to review the site-wide reports. The module attempts to enable the first two by default on roles with common node edit permissions; you should add \u0022mark OK\u0022 to trusted roles and \u0022view dashboard\u0022 as you deem fit.\u003C\/li\u003E\n\u003Cli\u003ESelect a color theme that works well with your site. Light and dark are available in the GUI; custom colors can be injected using JS parameters.\u003C\/li\u003E\n\u003Cli\u003EOn the module configuration page, set the checker to check regions your editors can modify (e.g., \u0022main, #footer-content\u0022).\u003C\/li\u003E\n\u003Cli\u003EClick through key pages and at least one page for each content type on your site, paying special attention to custom views and embeds, to look for theme-level issues or false positives. Fix these issues before rolling the module out, or add selectors to the module configuration\u0027s \u0022skip over these elements\u0022 list to suppress repeated alerts (e.g., \u0022#sidebar-menu a, .custom-card-view h3\u0022). Please do not skip this step! You will prevent frustration for your editors, and viewing the nodes will populate your reporting dashboard.\u003C\/li\u003E\n\u003Cli\u003ETell us how it went! This module and its base library are both under active development. Send thoughts through the issue queue or find \u003Ccode\u003Eitmaybejj\u003C\/code\u003E on the Drupal Slack\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cp\u003EThere are many additional configuration options available on the module page for more complicated situations: selectors for shadow components to check, changes to which document filetypes should be flagged, the ability to disable checking if certain selectors are present (code-only pages) or absent (user does not have an edit button on this content type), etc.\u003C\/p\u003E\n\u003Cp\u003EThe ReadMe also details a method for developers to programmatically modify JS parameters at runtime, which can be used to inject custom defaults on multi-site installs, handle long skip-element lists without cluttering the GUI, modify the color scheme or even rewrite tooltip messages.\u003C\/p\u003E\n\u003Cp\u003EAlso note that the library dispatches JavaScript events at key moments (scan finishes, panel opens, tooltip opens or shuts...), allowing developers to attach custom functionality. JavaScript on sites running Editoria11y can watch for these events to automatically open accordion widgets if they contain hidden alerts, to disable \u0022sticky\u0022 site menus when the panel opens, or even to sync the count and type of alerts found to third-party analytics platforms.\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022see-also\u0022\u003ESee also\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EThe Editoria11y library is developed in parallel with the \u003Ca href=\u0022https:\/\/sa11y.netlify.app\/\u0022 rel=\u0022nofollow\u0022\u003ESa11y accessibility checker\u003C\/a\u003E, and they have almost identical core test suites. Editoria11y focuses on providing a minimalist GUI and provides additional admin-facing tools like site-wide reporting and dismissal governance; Sa11y provides additional author-facing tools like color checking and readability scoring. There is a \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/sa11y\u0022 rel=\u0022nofollow\u0022\u003EDrupal wrapper for Sa11y\u003C\/a\u003E.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/decorative_image_widget\u0022 rel=\u0022nofollow\u0022\u003EDecorative Image Widget\u003C\/a\u003E makes alt text required unless the user checks a box to affirm the image is decorative.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003ENote that modules that claim they can \u003Cstrong\u003E\u003Cem\u003Efix\u003C\/em\u003E\u003C\/strong\u003E issues automatically based on AI or the like, or provide untested at-runtime theme modifications, are \u003Ca href=\u0022https:\/\/overlayfactsheet.com\/\u0022 rel=\u0022nofollow\u0022\u003Enot recommended by many disabled Web users\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022advanced-configuration-and-custom-tests\u0022\u003EAdvanced configuration and custom tests\u003C\/h2\u003E\n\u003Cp\u003EThe \u003Ca href=\u0022https:\/\/editoria11y.princeton.edu\/configuration\/\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003Elibrary configuration guide\u003C\/strong\u003E\u003C\/a\u003E has details and examples for parameters not exposed in the GUI, including how to write custom tests and how to open tabs and accordions before highlighting hidden alerts. The \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/editoria11y\/-\/blob\/2.1.x\/README.md#extending-and-modifying-editorially\u0022 rel=\u0022nofollow\u0022\u003E\u003Cstrong\u003Emodule ReadMe has instructions for modifying these parameters\u003C\/strong\u003E\u003C\/a\u003E within a Drupal theme or module.\u003C\/p\u003E\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022project-info\u0022\u003EProject Info\u003C\/h2\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Editoria11y is an automatic (not manual!) accessibility checker focused exclusively on flagging issues a content editor can easily fix."},"field_active_installs":"{\u00221.0.x\u0022:123,\u00227.x-1.x\u0022:13,\u00222.0.x\u0022:546,\u00222.1.x\u0022:14288,\u00222.2.x\u0022:194}","field_active_installs_total":15164,"field_composer_namespace":"drupal\/editoria11y","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"editoria11y","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"ebd9c743-897d-4c43-aaf8-b9e1acfe8e26","meta":{"drupal_internal__target_id":1177504}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/uid?resourceVersion=id%3A20051321"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/relationships\/uid?resourceVersion=id%3A20051321"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/field_development_status?resourceVersion=id%3A20051321"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/relationships\/field_development_status?resourceVersion=id%3A20051321"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/field_maintenance_status?resourceVersion=id%3A20051321"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/relationships\/field_maintenance_status?resourceVersion=id%3A20051321"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3df293b3-c9a1-4232-962b-3c8169e8e6e3","meta":{"drupal_internal__target_id":203}},{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"01df2105-2397-4a0e-b34c-80da1c3b1208","meta":{"drupal_internal__target_id":201}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/field_module_categories?resourceVersion=id%3A20051321"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/relationships\/field_module_categories?resourceVersion=id%3A20051321"}}},"field_project_images":{"data":[{"type":"file--file","id":"02ee2895-127b-4aa3-8c05-f120c585da46","meta":{"alt":"Alert panel showing no errors","title":null,"width":470,"height":182,"drupal_internal__target_id":34682}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/field_project_images?resourceVersion=id%3A20051321"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/6f8d5b16-b15d-4f5c-b94c-c00c80210f2d\/relationships\/field_project_images?resourceVersion=id%3A20051321"}}}}},{"type":"node--project_module","id":"eb147506-e5b6-497a-b649-89396968188a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a?resourceVersion=id%3A20016431"}},"attributes":{"drupal_internal__nid":1287958,"status":true,"title":"Physical Fields","created":"2011-09-22T19:15:36+00:00","changed":"2025-01-06T05:20:03+00:00","body":{"value":"Provides an API for storing and manipulating physical measurements.\r\n\r\nSupports unit conversions.\r\n\r\n\u003Ch3\u003EDrupal 8\u003C\/h3\u003E\r\n\r\nSupported measurement types:\r\n\u003Cul\u003E\r\n\u003Cli\u003E Area  \u003C\/li\u003E\r\n\u003Cli\u003E Length  \u003C\/li\u003E\r\n\u003Cli\u003E Temperature \u003C\/li\u003E\r\n\u003Cli\u003E Volume  \u003C\/li\u003E\r\n\u003Cli\u003E Weight  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nProvided field types:\r\n\u003Cul\u003E\r\n\u003Cli\u003E Physical measurement: Stores a single measurement and its unit. \u003C\/li\u003E\r\n\u003Cli\u003E Physical dimensions: Stores the length\/width\/height measurements and their unit.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nOther features:\r\n\u003Cul\u003E\r\n\u003Cli\u003E Language-specific number input and formatting \u003C\/li\u003E\r\n\u003Cli\u003E Value objects with support for bcmath-based arithmetic. \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nExample:\r\n\u003C?php\r\nuse Drupal\\physical\\Weight;\r\nuse Drupal\\physical\\WeightUnit;\r\n\r\n$weight = new Weight(\u0027100\u0027, WeightUnit::KILOGRAM);\r\n$other_weight = new Weight(\u0027120\u0027, WeightUnit::KILOGRAM);\r\n\/\/ Add the two weights together then express them in pounds.\r\n$new_weight = $weight-\u003Eadd($other_weight)-\u003Econvert(WeightUnit::POUND);\r\n?\u003E\r\n\r\n\u003Ch4\u003EIncompatibility notes\u003C\/h4\u003E\r\nPhysical 1.3+ is incompatible with Commerce versions prior to 2.34 (See https:\/\/www.drupal.org\/project\/physical\/issues\/3345698#comment-15019339).\r\n\r\n\u003Ch3\u003EDrupal 7\u003C\/h3\u003E\r\n\r\nProvided field types:\r\n\u003Cul\u003E\r\n\u003Cli\u003EPhysical volume: Stores a volume value with its unit of measurement.\u003C\/li\u003E\r\n\u003Cli\u003EPhysical weight: Stores a weight value with its unit of measurement.\u003C\/li\u003E\r\n\u003Cli\u003EPhysical dimensions: Stores values for length, width, and height with their unit of measurement.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nAll three field types support locking the unit of measurement on the entity add\/edit form.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EProvides an API for storing and manipulating physical measurements.\u003C\/p\u003E\n\u003Cp\u003ESupports unit conversions.\u003C\/p\u003E\n\u003Ch3 id=\u0022drupal-8\u0022\u003EDrupal 8\u003C\/h3\u003E\n\u003Cp\u003ESupported measurement types:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Area  \u003C\/li\u003E\n\u003Cli\u003E Length  \u003C\/li\u003E\n\u003Cli\u003E Temperature \u003C\/li\u003E\n\u003Cli\u003E Volume  \u003C\/li\u003E\n\u003Cli\u003E Weight  \u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EProvided field types:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Physical measurement: Stores a single measurement and its unit. \u003C\/li\u003E\n\u003Cli\u003E Physical dimensions: Stores the length\/width\/height measurements and their unit.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EOther features:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Language-specific number input and formatting \u003C\/li\u003E\n\u003Cli\u003E Value objects with support for bcmath-based arithmetic. \u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EExample:\u003Cbr\u003E\n\u0026lt;?php\u003Cbr\u003E\nuse Drupal\\physical\\Weight;\u003Cbr\u003E\nuse Drupal\\physical\\WeightUnit;\u003C\/p\u003E\n\u003Cp\u003E$weight = new Weight(\u0027100\u0027, WeightUnit::KILOGRAM);\u003Cbr\u003E\n$other_weight = new Weight(\u0027120\u0027, WeightUnit::KILOGRAM);\u003Cbr\u003E\n\/\/ Add the two weights together then express them in pounds.\u003Cbr\u003E\n$new_weight = $weight-\u0026gt;add($other_weight)-\u0026gt;convert(WeightUnit::POUND);\u003Cbr\u003E\n?\u0026gt;\u003C\/p\u003E\n\u003Ch4 id=\u0022incompatibility-notes\u0022\u003EIncompatibility notes\u003C\/h4\u003E\n\u003Cp\u003EPhysical 1.3+ is incompatible with Commerce versions prior to 2.34 (See \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/physical\/issues\/3345698#comment-15019339\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/physical\/issues\/3345698#comment-15019339\u003C\/a\u003E).\u003C\/p\u003E\n\u003Ch3 id=\u0022drupal-7\u0022\u003EDrupal 7\u003C\/h3\u003E\n\u003Cp\u003EProvided field types:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EPhysical volume: Stores a volume value with its unit of measurement.\u003C\/li\u003E\n\u003Cli\u003EPhysical weight: Stores a weight value with its unit of measurement.\u003C\/li\u003E\n\u003Cli\u003EPhysical dimensions: Stores values for length, width, and height with their unit of measurement.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EAll three field types support locking the unit of measurement on the entity add\/edit form.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Provides an API for storing and manipulating physical measurements.\r\n\r\nSupports unit conversions.\r\n\r\n\u003Ch3\u003EDrupal 8\u003C\/h3\u003E\r\n\r\nSupported measurement types:\r\n\u003Cul\u003E\r\n\u003Cli\u003E Area  \u003C\/li\u003E\r\n\u003Cli\u003E Length  \u003C\/li\u003E\r\n\u003Cli\u003E Volume  \u003C\/li\u003E\r\n\u003Cli\u003E Weight  \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nProvided field types:\r\n\u003Cul\u003E\r\n\u003Cli\u003E Physical measurement: Stores a single measurement and its unit. \u003C\/li\u003E\r\n\u003Cli\u003E Physical dimensions: Stores the length\/width\/height measurements and their unit.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EDrupal 7\u003C\/h3\u003E\r\n\r\nProvided field types:\r\n\u003Cul\u003E\r\n\u003Cli\u003EPhysical volume: Stores a volume value with its unit of measurement.\u003C\/li\u003E\r\n\u003Cli\u003EPhysical weight: Stores a weight value with its unit of measurement.\u003C\/li\u003E\r\n\u003Cli\u003EPhysical dimensions: Stores values for length, width, and height with their unit of measurement.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nAll three field types support locking the unit of measurement on the entity add\/edit form."},"field_active_installs":"{\u00227.x-1.x\u0022:1795,\u00228.x-1.x\u0022:9394}","field_active_installs_total":11189,"field_composer_namespace":"drupal\/physical","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"physical","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","meta":{"drupal_internal__target_id":3661446}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/uid?resourceVersion=id%3A20016431"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/relationships\/uid?resourceVersion=id%3A20016431"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/field_development_status?resourceVersion=id%3A20016431"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/relationships\/field_development_status?resourceVersion=id%3A20016431"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/field_maintenance_status?resourceVersion=id%3A20016431"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/relationships\/field_maintenance_status?resourceVersion=id%3A20016431"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","meta":{"drupal_internal__target_id":200}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/field_module_categories?resourceVersion=id%3A20016431"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/relationships\/field_module_categories?resourceVersion=id%3A20016431"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/field_project_images?resourceVersion=id%3A20016431"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eb147506-e5b6-497a-b649-89396968188a\/relationships\/field_project_images?resourceVersion=id%3A20016431"}}}}},{"type":"node--project_module","id":"0f6a13e0-9a1e-4358-8fff-b0641f8e3b26","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26?resourceVersion=id%3A20050315"}},"attributes":{"drupal_internal__nid":3139023,"status":true,"title":"COOKiES Consent Management","created":"2020-05-22T12:32:29+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"User consent management module for Drupal 8 and 9. \r\n\r\nThe module enables existing third-party-integration modules continued to be used in compliance with the GDPR (of course without manipulating their code). It solves the basic problem that when using third-party-integration modules, the user must agree to the use of cookies (according to GDPR) \u003Cstrong\u003Ebefore\u003C\/strong\u003E they are installed.\r\n\r\nIMPORTANT: No liability is assumed regarding compliance with the GDPR.\r\n\r\nThe COOKiES module provides (with the Library \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\u0022 title=\u0022See on GitHub\u0022\u003ECookies JSR\u003C\/a\u003E) a fully configurable user interface for user decisions. It also supports out-of-the-box some key third-party integration modules (especially those included in the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/thunder\u0022\u003EThunder\u003C\/a\u003E distribution):\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/asset_injector\u0022\u003EAsset Injector\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022\u003EGoogle Analytics module\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_tag\u0022\u003EGoogle Tag Manager\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ivw_integration\u0022\u003EIVW Integration \u003C2.4\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/recaptcha\u0022\u003EreCAPTCHA\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/matomo\u0022\u003EMatomo Analytics\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/etracker\u0022\u003EeTracker Analytics\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003EVideo embed with oembed from core:media module (recommended) or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\u0022\u003EVideo Embed Field\u003C\/a\u003E (iframe, not recom.)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_twitter\u0022\u003ETwitter media module\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_instagram\u0022\u003EInstagram media module\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003EFacebook Pixel, support for modules: \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/facebook_pixel\u0022\u003E\u0022Facebook Pixel\u0022 (recommended)\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/officialfacebookpixel\u0022\u003EOfficial Facebook Pixel (not recom.)\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EFurther 3rd-party module support\u003C\/h3\u003E\r\nIn the near future, some extensions will be available that make programming easier or superfluous for the support of further 3rd party integration modules in COOKiES.\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookies_module_handler\u0022\u003ECOOKiES Module Handler\u003C\/a\u003E covers the handling of Javascript (disable\/enable depending on users consent)\u003C\/li\u003E\r\n  \u003Cli\u003E\u0022COOKiES Filter\u0022 (by @Anybody \u0026 @Grevil) will cover the handling of 3rd party code snippts pasted to the text editor.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nBoth modules are intended to be transfered to the COOKiES module.\r\n\r\n\u003Ch3\u003EFeatures\u003C\/h3\u003E\r\n1. Full responsive design.\r\n2. Full translatable by Drupal UI\r\n3. Full accessibility\r\n4. Customizable styling. \r\n4.1. \u003Cstrong\u003ELight:\u003C\/strong\u003E Use CSS-vars to customize colors and some params as \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\/blob\/master\/README.md#styling\u0022\u003Edescribed here\u003C\/a\u003E.\r\n4.2. \u003Cstrong\u003EHeavy:\u003C\/strong\u003E Disable original CSS in the config and start to customize from scatch - or with \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\/tree\/master\/styles\u0022\u003Eoriginal SCSS download here\u003C\/a\u003E) \r\n\r\n\u003Ch4\u003EFor developers\u003C\/h4\u003E\r\nFor developers, with these Modules above there are some easy-to-understand examples available for integrating further third-party-integration modules into user consent management. It contains code that controls the interfaces and best practices to implement practically any requirement quickly and easily.\r\n\r\n\u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookies_demo\u0022\u003EDemo starter kit can be found here\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EInstall:\u003C\/h2\u003E\r\n1. Install module with Composer (alternatively download) and activate it under Admin \u003E Modules (\/admin\/modules) as you did it many times before.\r\n2. Add the \u0022COOKiES UI\u0022 block in the block configuration at \u003Cem\u003EAdmin\u003EStructure\u003EBlocks\u003C\/em\u003E (\/admin\/structure\/block) place the  block anywhere.\r\n3. Activate additional modules under \u003Cem\u003EAdmin\u003EModules\u003C\/em\u003E (e.g. cookies_ga to support Google Analytics)\r\n\r\n\u003Ch3\u003ESome Configurations\u003C\/h3\u003E\r\n1. Configure the COOKiES module under \u003Cem\u003EAdmin\u003EConfig\u003ESystem\u003ECOOKiES\u003C\/em\u003E (\/admin\/config\/cookies\/config)\r\n2. Users may want to change their cookie preferences. For this reason a \u0022Cookies settings\u0022 link in the tools menu is created. Move link to the menu, where you want to place it. (You can create a custom Link very easy with \u003Ccode\u003E\u003Ca href=\u0022#editCookieSettings\u0022\u003Ecookies\u003C\/a\u003E\u003C\/code\u003E) \r\n\r\n\u003Ch3\u003EImportant Note\u003C\/h3\u003E\r\nFor reasons of performance and in order not to influence the first impression of the page with the cookie banner, a \u003Cstrong\u003Escroll limit\u003C\/strong\u003E is set by default. If your website is not scrollable or your homepage is very short, you should set the \u003Cstrong\u003Esroll limit to zero\u003C\/strong\u003E so that the banner loads immediately.\r\n\r\n\u003Ch2\u003EPossible alternatives\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/eu_cookie_compliance\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/tacjs\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/klaro\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/simple_klaro\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/cookieconsent\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/cookie_content_blocker\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/usercentrics_cmp\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/cookiebot\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/cookiebot_gtm\u003C\/li\u003E\r\n  \u003Cli\u003Ehttps:\/\/www.drupal.org\/project\/cookie_script\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EUser consent management module for Drupal 8 and 9. \u003C\/p\u003E\n\u003Cp\u003EThe module enables existing third-party-integration modules continued to be used in compliance with the GDPR (of course without manipulating their code). It solves the basic problem that when using third-party-integration modules, the user must agree to the use of cookies (according to GDPR) \u003Cstrong\u003Ebefore\u003C\/strong\u003E they are installed.\u003C\/p\u003E\n\u003Cp\u003EIMPORTANT: No liability is assumed regarding compliance with the GDPR.\u003C\/p\u003E\n\u003Cp\u003EThe COOKiES module provides (with the Library \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\u0022 rel=\u0022nofollow\u0022\u003ECookies JSR\u003C\/a\u003E) a fully configurable user interface for user decisions. It also supports out-of-the-box some key third-party integration modules (especially those included in the \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/thunder\u0022 rel=\u0022nofollow\u0022\u003EThunder\u003C\/a\u003E distribution):\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/asset_injector\u0022 rel=\u0022nofollow\u0022\u003EAsset Injector\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022 rel=\u0022nofollow\u0022\u003EGoogle Analytics module\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_tag\u0022 rel=\u0022nofollow\u0022\u003EGoogle Tag Manager\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ivw_integration\u0022 rel=\u0022nofollow\u0022\u003EIVW Integration \u0026lt;2.4\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/matomo\u0022 rel=\u0022nofollow\u0022\u003EMatomo Analytics\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/etracker\u0022 rel=\u0022nofollow\u0022\u003EeTracker Analytics\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EVideo embed with oembed from core:media module (recommended) or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/video_embed_field\u0022 rel=\u0022nofollow\u0022\u003EVideo Embed Field\u003C\/a\u003E (iframe, not recom.)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_twitter\u0022 rel=\u0022nofollow\u0022\u003ETwitter media module\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/media_entity_instagram\u0022 rel=\u0022nofollow\u0022\u003EInstagram media module\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EFacebook Pixel, support for modules: \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/facebook_pixel\u0022 rel=\u0022nofollow\u0022\u003E\u0022Facebook Pixel\u0022 (recommended)\u003C\/a\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/officialfacebookpixel\u0022 rel=\u0022nofollow\u0022\u003EOfficial Facebook Pixel (not recom.)\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022further-3rd-party-module-support\u0022\u003EFurther 3rd-party module support\u003C\/h3\u003E\n\u003Cp\u003EIn the near future, some extensions will be available that make programming easier or superfluous for the support of further 3rd party integration modules in COOKiES.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookies_module_handler\u0022 rel=\u0022nofollow\u0022\u003ECOOKiES Module Handler\u003C\/a\u003E covers the handling of Javascript (disable\/enable depending on users consent)\u003C\/li\u003E\n\u003Cli\u003E\u0022COOKiES Filter\u0022 (by @Anybody \u0026amp; @Grevil) will cover the handling of 3rd party code snippts pasted to the text editor.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EBoth modules are intended to be transfered to the COOKiES module.\u003C\/p\u003E\n\u003Ch3 id=\u0022features\u0022\u003EFeatures\u003C\/h3\u003E\n\u003Cp\u003E1. Full responsive design.\u003Cbr\u003E\n2. Full translatable by Drupal UI\u003Cbr\u003E\n3. Full accessibility\u003Cbr\u003E\n4. Customizable styling.\u003Cbr\u003E\n4.1. \u003Cstrong\u003ELight:\u003C\/strong\u003E Use CSS-vars to customize colors and some params as \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\/blob\/master\/README.md#styling\u0022 rel=\u0022nofollow\u0022\u003Edescribed here\u003C\/a\u003E.\u003Cbr\u003E\n4.2. \u003Cstrong\u003EHeavy:\u003C\/strong\u003E Disable original CSS in the config and start to customize from scatch - or with \u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookiesjsr\/tree\/master\/styles\u0022 rel=\u0022nofollow\u0022\u003Eoriginal SCSS download here\u003C\/a\u003E) \u003C\/p\u003E\n\u003Ch4 id=\u0022for-developers\u0022\u003EFor developers\u003C\/h4\u003E\n\u003Cp\u003EFor developers, with these Modules above there are some easy-to-understand examples available for integrating further third-party-integration modules into user consent management. It contains code that controls the interfaces and best practices to implement practically any requirement quickly and easily.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/github.com\/jfeltkamp\/cookies_demo\u0022 rel=\u0022nofollow\u0022\u003EDemo starter kit can be found here\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022install\u0022\u003EInstall:\u003C\/h2\u003E\n\u003Cp\u003E1. Install module with Composer (alternatively download) and activate it under Admin \u0026gt; Modules (\/admin\/modules) as you did it many times before.\u003Cbr\u003E\n2. Add the \u0022COOKiES UI\u0022 block in the block configuration at \u003Cem\u003EAdmin\u0026gt;Structure\u0026gt;Blocks\u003C\/em\u003E (\/admin\/structure\/block) place the  block anywhere.\u003Cbr\u003E\n3. Activate additional modules under \u003Cem\u003EAdmin\u0026gt;Modules\u003C\/em\u003E (e.g. cookies_ga to support Google Analytics)\u003C\/p\u003E\n\u003Ch3 id=\u0022some-configurations\u0022\u003ESome Configurations\u003C\/h3\u003E\n\u003Cp\u003E1. Configure the COOKiES module under \u003Cem\u003EAdmin\u0026gt;Config\u0026gt;System\u0026gt;COOKiES\u003C\/em\u003E (\/admin\/config\/cookies\/config)\u003Cbr\u003E\n2. Users may want to change their cookie preferences. For this reason a \u0022Cookies settings\u0022 link in the tools menu is created. Move link to the menu, where you want to place it. (You can create a custom Link very easy with \u003Ccode\u003E\u003Ca href=\u0022#editCookieSettings\u0022 rel=\u0022nofollow\u0022\u003Ecookies\u003C\/a\u003E\u003C\/code\u003E) \u003C\/p\u003E\n\u003Ch3 id=\u0022important-note\u0022\u003EImportant Note\u003C\/h3\u003E\n\u003Cp\u003EFor reasons of performance and in order not to influence the first impression of the page with the cookie banner, a \u003Cstrong\u003Escroll limit\u003C\/strong\u003E is set by default. If your website is not scrollable or your homepage is very short, you should set the \u003Cstrong\u003Esroll limit to zero\u003C\/strong\u003E so that the banner loads immediately.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022possible-alternatives\u0022\u003EPossible alternatives\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/eu_cookie_compliance\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/eu_cookie_compliance\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/tacjs\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/tacjs\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/klaro\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/klaro\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/simple_klaro\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/simple_klaro\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookieconsent\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/cookieconsent\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookie_content_blocker\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/cookie_content_blocker\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/usercentrics_cmp\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/usercentrics_cmp\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookiebot\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/cookiebot\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookiebot_gtm\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/cookiebot_gtm\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/cookie_script\u0022 rel=\u0022nofollow\u0022\u003Ehttps:\/\/www.drupal.org\/project\/cookie_script\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00221.0.x\u0022:607,\u00221.1.x\u0022:702,\u00221.2.x\u0022:9031,\u00222.0.x\u0022:47}","field_active_installs_total":10387,"field_composer_namespace":"drupal\/cookies","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"cookies","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"a2524084-7d93-463f-af4a-507077045868","meta":{"drupal_internal__target_id":2471686}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/uid?resourceVersion=id%3A20050315"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/relationships\/uid?resourceVersion=id%3A20050315"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/field_development_status?resourceVersion=id%3A20050315"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/relationships\/field_development_status?resourceVersion=id%3A20050315"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/field_maintenance_status?resourceVersion=id%3A20050315"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/relationships\/field_maintenance_status?resourceVersion=id%3A20050315"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"24830916-5c07-4446-89de-960915f87bf6","meta":{"drupal_internal__target_id":199}},{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/field_module_categories?resourceVersion=id%3A20050315"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/relationships\/field_module_categories?resourceVersion=id%3A20050315"}}},"field_project_images":{"data":[{"type":"file--file","id":"23da7a06-75a1-4ad7-92d3-d6ce014ef22a","meta":{"alt":"Cookies","title":null,"width":1310,"height":428,"drupal_internal__target_id":29815}},{"type":"file--file","id":"0ecd59e5-294c-4e43-b6bc-7478ff7504eb","meta":{"alt":"User Consent Layer","title":null,"width":2526,"height":1386,"drupal_internal__target_id":29819}},{"type":"file--file","id":"db94321e-b46f-4314-9162-af10ef79915d","meta":{"alt":"User Consent Banner","title":null,"width":2528,"height":1354,"drupal_internal__target_id":29820}},{"type":"file--file","id":"74f8a604-637d-44e5-be91-dd386e14efb2","meta":{"alt":"Cookies configuration","title":null,"width":1998,"height":1318,"drupal_internal__target_id":29818}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/field_project_images?resourceVersion=id%3A20050315"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/0f6a13e0-9a1e-4358-8fff-b0641f8e3b26\/relationships\/field_project_images?resourceVersion=id%3A20050315"}}}}},{"type":"node--project_module","id":"31309129-e0ac-46be-ac82-9e1440561ef4","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4?resourceVersion=id%3A20006244"}},"attributes":{"drupal_internal__nid":129292,"status":true,"title":"Ubercart","created":"2007-03-19T22:53:08+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"Ubercart is the most popular Drupal E-Commerce platform for your website. It implements everything you need to start selling products online. Web Developers from all skill ranges can use it to support a variety of E-Commerce industries-- including physical goods, digital downloads, or even subscription based billing services. Ubercart can do it all! \r\n\r\nFor more details, be sure to visit the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/modules\/ubercart\/what-is-ubercart\u0022 \u003EWhat is Ubercart?\u003C\/a\u003E page for more info.\r\n\r\n\u003Ch2\u003ECurrent Features:\u003C\/h2\u003E \r\n\u003Cul\u003E\r\n\u003Cli\u003EConfigurable product catalog includes catalog pages and a block to display product categories.\u003C\/li\u003E\r\n\u003Cli\u003EFlexible product creation system with product classes.\u003C\/li\u003E\r\n\u003Cli\u003EMultiple product image support out of the box.\u003C\/li\u003E\r\n\u003Cli\u003EFlexible product attributes system.\u003C\/li\u003E\r\n\u003Cli\u003EBasic product stock level tracking and notification.\u003C\/li\u003E\r\n\u003Cli\u003EProduct features to add file downloads, role promotions, and more to products.\u003C\/li\u003E\r\n\u003Cli\u003ESingle page checkout.\u003C\/li\u003E\r\n\u003Cli\u003EAutomatic account generation (anonymous checkout).\u003C\/li\u003E\r\n\u003Cli\u003ECustomer and administrator checkout notifications.\u003C\/li\u003E\r\n\u003Cli\u003ESimple order processing (with workflow for automated order processing).\u003C\/li\u003E\r\n\u003Cli\u003ESimple order creation and editing.\u003C\/li\u003E\r\n\u003Cli\u003EIntegrated payment system that acts as a bridge between acceptable payment methods (check, credit card, purchase order, etc.) and payment gateways (CyberSource, Authorize.net, PayPal, etc.).\u003C\/li\u003E\r\n\u003Cli\u003EShipping quotes and fulfillment, including integration with UPS, FedEx, USPS.\r\n\u003Cli\u003ESales, product, and customer reports.\u003C\/li\u003E\r\n\u003Cli\u003EActivity logging.\u003C\/li\u003E\r\n\u003Cli\u003EMuch more... and more to come.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nUbercart is PayPal certified and integrates PayPal Website Payments Standard, Website Payments Pro, and Express Checkout.  For more information, you can read the \u003Ca href=\u0022http:\/\/www.ubercart.org\/paypal\u0022\u003EUbercart PayPal\u003C\/a\u003E information page.\r\n\r\nYou are responsible to ensure your merchants and customers are protected from online payment fraud. For more information, we recommend you read the \u003Ca href=\u0022http:\/\/drupalpcicompliance.org\/\u0022\u003EDrupal PCI Compliance white paper\u003C\/a\u003E maintained by third party eCommerce security experts.\r\n\r\n\u003Ch2\u003ESupport \u0026 Issue Tracking\u003C\/h2\u003E\r\nUbercart maintains a customized \u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022\u003Esupport forum\u003C\/a\u003E at the \u003Ca href=\u0022http:\/\/www.ubercart.org\u0022\u003Ecommunity site\u003C\/a\u003E. Please use the following links for support, installation, bug reporting, and showcasing your Ubercart sites.\r\n\u003Cul\u003E\r\n\u003Cli\u003EInstallation instructions: \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/ubercart\/installing-ubercart\u0022\u003EUbercart 4.x (Drupal 8)\u003C\/a\u003E | \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/modules\/ubercart\/installing-ubercart\u0022\u003EUbercart 3.x (Drupal 7)\u003C\/a\u003E\u003C\/li\u003E\r\n\r\n\u003Cli\u003EBeginner\u0027s Video Tutorials: \u003Cbr\u003E\r\n\u003Ca href=\u0022http:\/\/youtu.be\/GTuQRcSX7nE\u0022\u003EConfiguring Your Server, Database and Installing Drupal\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/kWQEA0pSws0\u0022\u003EDrupal Terminology\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/iZOao906wSo\u0022\u003EAdding Functionality w\/ Modules\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=0LTTkt3Tqig\u0022\u003EConfiguring Ubercart\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=vbeqlNjBvwQ\u0022\u003EConfiguring Payments, Shipping, Roles and Downloads\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/W1WSzGxuXE8\u0022\u003EConfiguring Shipping, Paypal, Taxes\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/xXdyI2yyxDU\u0022\u003ECreating Shippable, Role Based and Downloadable Products\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/fVDOqI7Gge4\u0022\u003EOverriding the Catalog and Creating Product Attributes\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/cX8wpEzhFt8\u0022\u003ECreating Product Kits, Store Stock and Order Status\u003C\/a\u003E |\r\n\u003Ca href=\u0022http:\/\/youtu.be\/QSPuiSMup0c\u0022\u003ELaunching Your Site, Ubercart Reports, Drupal Themes and Add-on Modules\u003C\/a\u003E\r\n\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=RMcYIDdjdVA\u0022\u003EHow to Update Drupal 7 Modules and Drupal Core\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=HMmzWefTAkk\u0022\u003EHow to Create Products in Drupal 7 with the Feeds and UC Feeds Module\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=qO7DGyQ7uwg\u0022\u003EDrupal 7 Ubercart Discount Coupons Module and Automatic Discounts\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=wL4BakaXzsk\u0022\u003EHow to Create a Drupal 7 Omega Subtheme\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=hEeWNi1YCKs\u0022\u003EHow to Configure the Drupal 7 Omega Theme and Delta \u0026amp; Context Modules\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=UOvxCChgSOU\u0022\u003EDrupal 7 Template Preprocess Functions and TPL Files\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=wqcIIFIL6y8\u0022\u003EHow to Use LESS CSS Dynamic Stylesheet Language with Drupal 7\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=rQbfVBSjB80\u0022\u003EHow to Create Event Registrations with Drupal 7 and Ubercart\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=XMGpRr2Z4wU\u0022\u003EImproving Drupal 7 Ubercart Event Registrations\u003C\/a\u003E |\r\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=a_fl4-xTeHU\u0022\u003ESetting Up Drupal 7 \/ Ubercart Affiliate Sales\u003C\/a\u003E\r\n\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022\u003EUbercart support and development forums\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/project_module?f%5B0%5D=\u0026f%5B1%5D=\u0026f%5B2%5D=\u0026f%5B3%5D=\u0026f%5B4%5D=sm_field_project_type%3Afull\u0026f%5B5%5D=\u0026text=ubercart\u0026solrsort=iss_project_release_usage+desc\u0026op=Search\u0022\u003EContributions directory\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n(Please note: the issue tracker enabled here at Drupal.org is for specific bug reporting and documentation deficiencies only.  Support and feature requests will not be responded to.  These posts should be taken to the \u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022\u003Eappropriate forum\u003C\/a\u003E.)\r\n\r\nIn addition to the forums, community members regularly hang out in #drupal-ubercart on irc.freenode.net.  If you\u0027ve got a quick question or want to chat about development, consider stopping by for a while.  Check out \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/108355\u0022\u003Ethis page\u003C\/a\u003E for an introduction to IRC.\r\n\r\n\u003Ca name=\u0022dependencies\u0022\u003E \u003C\/a\u003E\r\n\u003Ch2\u003EModule Dependencies\u003C\/h2\u003E\r\nFor full functionality, Ubercart depends a few other contributed Drupal modules.  You must install the required modules for your version of Ubercart before you can install Ubercart itself.  You can see their project pages below:\r\n\r\n\u003Ctable width=\u002285%\u0022\u003E\r\n\u003Ctr valign=\u0022top\u0022\u003E\r\n\u003Ctd width=\u002250%\u0022\u003E\r\n\u003Ch3\u003EDrupal 7\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/rules\u0022\u003ERules\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/views\u0022\u003EViews\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ctools\u0022\u003ECtools\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity\u0022\u003EEntity API\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity\u0022\u003EEntity tokens\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003Ctd\u003E\r\n\u003Ch3\u003EDrupal 8\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/rules\u0022\u003ERules\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003C\/tr\u003E\r\n\u003C\/table\u003E\r\n\r\n\u003Ch3\u003ERecommended Modules:\u003C\/h3\u003E\r\nWhile not required, the following contributed modules are recommended for \u0022out of the box\u0022 image support and e-commerce tracking:\r\n\r\n\u003Ctable width=\u002285%\u0022\u003E\r\n\u003Ctr valign=\u0022top\u0022\u003E\r\n\u003Ctd width=\u002250%\u0022\u003E\r\n\u003Ch3\u003EDrupal 7\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022\u003EGoogle Analytics\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/token\u0022\u003EToken\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003Ctd\u003E\r\n\u003Ch3\u003EDrupal 8\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022\u003EGoogle Analytics\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/token\u0022\u003EToken\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003C\/td\u003E\r\n\u003C\/tr\u003E\r\n\u003C\/table\u003E\r\n\r\n\u003Ch2\u003ESponsoring Development and Donations\u003C\/h2\u003E\r\n\r\nIf you would like to use Ubercart but need to see some specific feature fleshed out a bit more for your use, please contact one of the project maintainers.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EUbercart is the most popular Drupal E-Commerce platform for your website. It implements everything you need to start selling products online. Web Developers from all skill ranges can use it to support a variety of E-Commerce industries-- including physical goods, digital downloads, or even subscription based billing services. Ubercart can do it all! \u003C\/p\u003E\n\u003Cp\u003EFor more details, be sure to visit the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/modules\/ubercart\/what-is-ubercart\u0022 rel=\u0022nofollow\u0022\u003EWhat is Ubercart?\u003C\/a\u003E page for more info.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022current-features\u0022\u003ECurrent Features:\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EConfigurable product catalog includes catalog pages and a block to display product categories.\u003C\/li\u003E\n\u003Cli\u003EFlexible product creation system with product classes.\u003C\/li\u003E\n\u003Cli\u003EMultiple product image support out of the box.\u003C\/li\u003E\n\u003Cli\u003EFlexible product attributes system.\u003C\/li\u003E\n\u003Cli\u003EBasic product stock level tracking and notification.\u003C\/li\u003E\n\u003Cli\u003EProduct features to add file downloads, role promotions, and more to products.\u003C\/li\u003E\n\u003Cli\u003ESingle page checkout.\u003C\/li\u003E\n\u003Cli\u003EAutomatic account generation (anonymous checkout).\u003C\/li\u003E\n\u003Cli\u003ECustomer and administrator checkout notifications.\u003C\/li\u003E\n\u003Cli\u003ESimple order processing (with workflow for automated order processing).\u003C\/li\u003E\n\u003Cli\u003ESimple order creation and editing.\u003C\/li\u003E\n\u003Cli\u003EIntegrated payment system that acts as a bridge between acceptable payment methods (check, credit card, purchase order, etc.) and payment gateways (CyberSource, Authorize.net, PayPal, etc.).\u003C\/li\u003E\n\u003Cli\u003EShipping quotes and fulfillment, including integration with UPS, FedEx, USPS.\n\u003C\/li\u003E\u003Cli\u003ESales, product, and customer reports.\u003C\/li\u003E\n\u003Cli\u003EActivity logging.\u003C\/li\u003E\n\u003Cli\u003EMuch more... and more to come.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EUbercart is PayPal certified and integrates PayPal Website Payments Standard, Website Payments Pro, and Express Checkout.  For more information, you can read the \u003Ca href=\u0022http:\/\/www.ubercart.org\/paypal\u0022 rel=\u0022nofollow\u0022\u003EUbercart PayPal\u003C\/a\u003E information page.\u003C\/p\u003E\n\u003Cp\u003EYou are responsible to ensure your merchants and customers are protected from online payment fraud. For more information, we recommend you read the \u003Ca href=\u0022http:\/\/drupalpcicompliance.org\/\u0022 rel=\u0022nofollow\u0022\u003EDrupal PCI Compliance white paper\u003C\/a\u003E maintained by third party eCommerce security experts.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022support-amp-issue-tracking\u0022\u003ESupport \u0026amp; Issue Tracking\u003C\/h2\u003E\n\u003Cp\u003EUbercart maintains a customized \u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022 rel=\u0022nofollow\u0022\u003Esupport forum\u003C\/a\u003E at the \u003Ca href=\u0022http:\/\/www.ubercart.org\u0022 rel=\u0022nofollow\u0022\u003Ecommunity site\u003C\/a\u003E. Please use the following links for support, installation, bug reporting, and showcasing your Ubercart sites.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EInstallation instructions: \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/8\/modules\/ubercart\/installing-ubercart\u0022 rel=\u0022nofollow\u0022\u003EUbercart 4.x (Drupal 8)\u003C\/a\u003E | \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/7\/modules\/ubercart\/installing-ubercart\u0022 rel=\u0022nofollow\u0022\u003EUbercart 3.x (Drupal 7)\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EBeginner\u0027s Video Tutorials: \u003Cbr\u003E\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/GTuQRcSX7nE\u0022 rel=\u0022nofollow\u0022\u003EConfiguring Your Server, Database and Installing Drupal\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/kWQEA0pSws0\u0022 rel=\u0022nofollow\u0022\u003EDrupal Terminology\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/iZOao906wSo\u0022 rel=\u0022nofollow\u0022\u003EAdding Functionality w\/ Modules\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=0LTTkt3Tqig\u0022 rel=\u0022nofollow\u0022\u003EConfiguring Ubercart\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=vbeqlNjBvwQ\u0022 rel=\u0022nofollow\u0022\u003EConfiguring Payments, Shipping, Roles and Downloads\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/W1WSzGxuXE8\u0022 rel=\u0022nofollow\u0022\u003EConfiguring Shipping, Paypal, Taxes\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/xXdyI2yyxDU\u0022 rel=\u0022nofollow\u0022\u003ECreating Shippable, Role Based and Downloadable Products\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/fVDOqI7Gge4\u0022 rel=\u0022nofollow\u0022\u003EOverriding the Catalog and Creating Product Attributes\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/cX8wpEzhFt8\u0022 rel=\u0022nofollow\u0022\u003ECreating Product Kits, Store Stock and Order Status\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022http:\/\/youtu.be\/QSPuiSMup0c\u0022 rel=\u0022nofollow\u0022\u003ELaunching Your Site, Ubercart Reports, Drupal Themes and Add-on Modules\u003C\/a\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=RMcYIDdjdVA\u0022 rel=\u0022nofollow\u0022\u003EHow to Update Drupal 7 Modules and Drupal Core\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=HMmzWefTAkk\u0022 rel=\u0022nofollow\u0022\u003EHow to Create Products in Drupal 7 with the Feeds and UC Feeds Module\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=qO7DGyQ7uwg\u0022 rel=\u0022nofollow\u0022\u003EDrupal 7 Ubercart Discount Coupons Module and Automatic Discounts\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=wL4BakaXzsk\u0022 rel=\u0022nofollow\u0022\u003EHow to Create a Drupal 7 Omega Subtheme\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=hEeWNi1YCKs\u0022 rel=\u0022nofollow\u0022\u003EHow to Configure the Drupal 7 Omega Theme and Delta \u0026amp; Context Modules\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=UOvxCChgSOU\u0022 rel=\u0022nofollow\u0022\u003EDrupal 7 Template Preprocess Functions and TPL Files\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=wqcIIFIL6y8\u0022 rel=\u0022nofollow\u0022\u003EHow to Use LESS CSS Dynamic Stylesheet Language with Drupal 7\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=rQbfVBSjB80\u0022 rel=\u0022nofollow\u0022\u003EHow to Create Event Registrations with Drupal 7 and Ubercart\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=XMGpRr2Z4wU\u0022 rel=\u0022nofollow\u0022\u003EImproving Drupal 7 Ubercart Event Registrations\u003C\/a\u003E |\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=a_fl4-xTeHU\u0022 rel=\u0022nofollow\u0022\u003ESetting Up Drupal 7 \/ Ubercart Affiliate Sales\u003C\/a\u003E\u003C\/p\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022 rel=\u0022nofollow\u0022\u003EUbercart support and development forums\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/project_module?f%5B0%5D=\u0026amp;f%5B1%5D=\u0026amp;f%5B2%5D=\u0026amp;f%5B3%5D=\u0026amp;f%5B4%5D=sm_field_project_type%3Afull\u0026amp;f%5B5%5D=\u0026amp;text=ubercart\u0026amp;solrsort=iss_project_release_usage+desc\u0026amp;op=Search\u0022 rel=\u0022nofollow\u0022\u003EContributions directory\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E(Please note: the issue tracker enabled here at Drupal.org is for specific bug reporting and documentation deficiencies only.  Support and feature requests will not be responded to.  These posts should be taken to the \u003Ca href=\u0022http:\/\/www.ubercart.org\/forum\u0022 rel=\u0022nofollow\u0022\u003Eappropriate forum\u003C\/a\u003E.)\u003C\/p\u003E\n\u003Cp\u003EIn addition to the forums, community members regularly hang out in #drupal-ubercart on irc.freenode.net.  If you\u0027ve got a quick question or want to chat about development, consider stopping by for a while.  Check out \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/108355\u0022 rel=\u0022nofollow\u0022\u003Ethis page\u003C\/a\u003E for an introduction to IRC.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca rel=\u0022nofollow\u0022\u003E \u003C\/a\u003E\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022module-dependencies\u0022\u003EModule Dependencies\u003C\/h2\u003E\n\u003Cp\u003EFor full functionality, Ubercart depends a few other contributed Drupal modules.  You must install the required modules for your version of Ubercart before you can install Ubercart itself.  You can see their project pages below:\u003C\/p\u003E\n\u003Ctable\u003E\n\u003Ctr\u003E\n\u003Ctd\u003E\n\u003Ch3 id=\u0022drupal-7\u0022\u003EDrupal 7\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/rules\u0022 rel=\u0022nofollow\u0022\u003ERules\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ctools\u0022 rel=\u0022nofollow\u0022\u003ECtools\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EEntity API\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EEntity tokens\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003Ctd\u003E\n\u003Ch3 id=\u0022drupal-8\u0022\u003EDrupal 8\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/rules\u0022 rel=\u0022nofollow\u0022\u003ERules\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003C\/table\u003E\n\u003Ch3 id=\u0022recommended-modules\u0022\u003ERecommended Modules:\u003C\/h3\u003E\n\u003Cp\u003EWhile not required, the following contributed modules are recommended for \u0022out of the box\u0022 image support and e-commerce tracking:\u003C\/p\u003E\n\u003Ctable\u003E\n\u003Ctr\u003E\n\u003Ctd\u003E\n\u003Ch3 id=\u0022drupal-7-01\u0022\u003EDrupal 7\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022 rel=\u0022nofollow\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022 rel=\u0022nofollow\u0022\u003EGoogle Analytics\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/token\u0022 rel=\u0022nofollow\u0022\u003EToken\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003Ctd\u003E\n\u003Ch3 id=\u0022drupal-8-01\u0022\u003EDrupal 8\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/colorbox\u0022 rel=\u0022nofollow\u0022\u003EColorbox\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/google_analytics\u0022 rel=\u0022nofollow\u0022\u003EGoogle Analytics\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/token\u0022 rel=\u0022nofollow\u0022\u003EToken\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003C\/table\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022sponsoring-development-and-donations\u0022\u003ESponsoring Development and Donations\u003C\/h2\u003E\n\u003Cp\u003EIf you would like to use Ubercart but need to see some specific feature fleshed out a bit more for your use, please contact one of the project maintainers.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Ubercart is the most popular Drupal E-Commerce platform for your website. It implements everything you need to start selling products online. Web Developers from all skill ranges can use it to support a variety of E-Commerce industries-- including physical goods, digital downloads, or even subscription based billing services. Ubercart can do it all! \r\n\r\nFor more details, be sure to visit the \u003Ca href=\u0022http:\/\/www.ubercart.org\/what_is_ubercart\u0022 \u003EWhat is Ubercart?\u003C\/a\u003E page for more info.\r\n\r\n\u003Ch2\u003ECurrent Features:\u003C\/h2\u003E \r\n\u003Cul\u003E\r\n\u003Cli\u003EConfigurable product catalog includes catalog pages and a block to display product categories.\u003C\/li\u003E\r\n\u003Cli\u003EFlexible product creation system with product classes.\u003C\/li\u003E\r\n\u003Cli\u003EMultiple product image support out of the box.\u003C\/li\u003E\r\n\u003Cli\u003EFlexible product attributes system.\u003C\/li\u003E\r\n\u003Cli\u003EBasic product stock level tracking and notification.\u003C\/li\u003E\r\n\u003Cli\u003EProduct features to add file downloads, role promotions, and more to products.\u003C\/li\u003E\r\n\u003Cli\u003ESingle page checkout.\u003C\/li\u003E\r\n\u003Cli\u003EAutomatic account generation (anonymous checkout).\u003C\/li\u003E\r\n\u003Cli\u003ECustomer and administrator checkout notifications.\u003C\/li\u003E\r\n\u003Cli\u003ESimple order processing (with workflow for automated order processing).\u003C\/li\u003E\r\n\u003Cli\u003ESimple order creation and editing.\u003C\/li\u003E\r\n"},"field_active_installs":"{\u00226.x-2.x\u0022:735,\u00225.x-1.x\u0022:5,\u00227.x-3.x\u0022:9024,\u00228.x-4.x\u0022:562}","field_active_installs_total":10326,"field_composer_namespace":"drupal\/ubercart","field_composer_types":[],"field_core_semver_maximum":9000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"ubercart","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"ec8d23c8-6b5d-4048-8002-34ca77d57b3a","meta":{"drupal_internal__target_id":202830}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/uid?resourceVersion=id%3A20006244"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/relationships\/uid?resourceVersion=id%3A20006244"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"0e260036-be60-4f88-9aa5-f9db2eee678a","meta":{"drupal_internal__target_id":27277}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/field_development_status?resourceVersion=id%3A20006244"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/relationships\/field_development_status?resourceVersion=id%3A20006244"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/field_maintenance_status?resourceVersion=id%3A20006244"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/relationships\/field_maintenance_status?resourceVersion=id%3A20006244"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/field_module_categories?resourceVersion=id%3A20006244"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/relationships\/field_module_categories?resourceVersion=id%3A20006244"}}},"field_project_images":{"data":[{"type":"file--file","id":"1f64f823-017c-4b86-98a1-61c8e8b02b32","meta":{"alt":"Ubercart is the most popular Drupal E-Commerce platform.","title":null,"width":160,"height":70,"drupal_internal__target_id":5291}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/field_project_images?resourceVersion=id%3A20006244"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/31309129-e0ac-46be-ac82-9e1440561ef4\/relationships\/field_project_images?resourceVersion=id%3A20006244"}}}}},{"type":"node--project_module","id":"f58e3714-2506-43c5-b3ca-6b10617d6098","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098?resourceVersion=id%3A20011676"}},"attributes":{"drupal_internal__nid":906998,"status":true,"title":"Commerce PayPal","created":"2010-09-09T21:04:36+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"This project integrates Drupal Commerce with various PayPal payment solutions. The primary integration method for both versions of the module (Drupal 9+ vs. Drupal 7) is \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/standard\/\u0022\u003EPayPal Checkout\u003C\/a\u003E, which supports payment via PayPal account, Pay Later, Venmo, and credit or debit card.\r\n\r\nPay Later, formerly known as PayPal Credit, lets merchants extend financing opportunities to their customers, which can be advertised on Add to Cart forms or through a custom block defined by this module. See how it works in the \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/pay-later\/us\/commerce-platforms\/centarro\/\u0022\u003EPayPal documentation\u003C\/a\u003E.\r\n\u003C!-- break --\u003E\r\n\u003Ch2\u003EAdding the PayPal funding source to order pages\u003C\/h2\u003E\r\n\r\nPayPal Checkout displays payment buttons based on your Drupal Commerce configuration, the merchant\u0027s PayPal account configuration, and the customer\u0027s device. The option selected by the customer will be saved to an order\u0027s data property as the funding source. However, there is no default place in the user interface to display such information.\r\n\r\nOn Drupal 9 or later, to show this to your customer or store managers, you will need to edit the relevant theme templates and print the \u003Ccode\u003Eorder.funding_source\u003C\/code\u003E added to the list of available variables by this module. To see if you\u0027re eligible to accept Venmo as a funding source, consult the latest \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/pay-with-venmo\/#link-eligibility\u0022\u003EPayPal documentation\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EOther integrated solutions\u003C\/h2\u003E\r\nWe recommend migrating to PayPal Checkout from older payment solutions if at all possible. However, Payflow is still required to use PayPal with a third party payment processor. The full list of supported payment solutions includes:\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003EPayflow Link - D9, D7\r\n\u003Cli\u003EPayflow Pro - D9\r\n\u003Cli\u003EPayPal Express Checkout (EC) - D9, D7\r\n\u003Cli\u003EPayPal Payments Standard (WPS) - D7\r\n\u003Cli\u003EPayPal Payments Advanced (PPA) - D7\r\n\u003Cli\u003EPayPal Payments Pro - D7\r\n\u003C\/ul\u003E\r\n\r\nThe PayPal WPS \/ EC integration supports PayPal\u0027s Instant Payment Notifications (IPNs) to react to authorizations, captures, voids, and refunds with full logging for testing and debugging. The PayPal Checkout integration does the same via \u003Ca href=\u0022https:\/\/developer.paypal.com\/api\/rest\/webhooks\/\u0022\u003EREST API webhooks\u003C\/a\u003E. It does not currently support Billing Agreements, \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/multiparty\/checkout\/multiseller-payments\/\u0022\u003Emulti-seller payments\u003C\/a\u003E, or other advanced features like the \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/standard\/customize\/shipping-options\/\u0022\u003Eshipping callback\u003C\/a\u003E.\r\n\r\nAll of the above integrations were reviewed and certified by PayPal. Contact \u003Ca href=\u0022https:\/\/www.centarro.io\/products\/centarro-support#contact\u0022\u003ECentarro\u003C\/a\u003E to inquire about adding new features or certified integrations to the module.\r\n\r\n\u003Ch2\u003EDevelopment notes\u003C\/h2\u003E\r\n\r\nIf you have unanswered questions about how PayPal\u0027s services work or want to contribute to the development of this project, you can find PDF guides and HTML resource pages for every PayPal service  on their \u003Ca href=\u0022https:\/\/developer.paypal.com\u0022\u003Edeveloper network\u003C\/a\u003E. Before requesting a feature or code change, please ensure it is supported by PayPal and provide a link to the documentation backing up your request.\r\n\r\nIf your PayPal API requests are failing due to SSL certificate verification, refer to the comments in the cURL request preparation of commerce_paypal_api_request() to read how to specify a local CA certificate bundle file.\r\n\r\n\u003Ch2\u003EDrupal 7 documentation + FAQs\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#1\u0022\u003EWhat do I need to configure in my PayPal profile to use this module?\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#2\u0022\u003EDo I need to configure the IPN settings in my PayPal profile?\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#3\u0022\u003EWhat can I do if IPNs are failing?\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#4\u0022\u003EWhat URL do I use for auto return from PayPal Payments Standard?\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#5\u0022\u003EWhy isn\u0027t my currency shown in the currency select list?\u003C\/a\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003ENote:\u003C\/strong\u003E you will only receive IPNs from PayPal if you do your testing on a public web server to which PayPal can actually POST notifications. Installations on your localhost or behind HTTP authentication will not be accessible by PayPal, so your PayPal WPS payments will never appear on your orders.\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Standard (WPS)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/us\/webapps\/mpp\/referral\/paypal-payments-standard?partner_id=VZ6B9QLQ8LZEE\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902654\u0022\u003EView documentation\u003C\/a\u003E\r\nRedirects from checkout to PayPal and includes IPN support for authorizations during checkout, prior authorization captures, authorizations plus capture during checkout (\u0022Sale\u0022), voids, and refunds.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Pro (WPP)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/us\/webapps\/mpp\/referral\/paypal-payments-pro?partner_id=VZ6B9QLQ8LZEE\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902656\u0022\u003EView documentation\u003C\/a\u003E\r\nSupports authorization and authorization plus capture during checkout (\u0022Sale\u0022). Authorization only transactions can be captured on the site or at PayPal with IPN support coming in the next release candidate to mark pending authorization transactions as complete locally that were captured at PayPal.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EPayPal Express Checkout (EC)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-express-checkout?partner_id=VZ6B9QLQ8LZEE\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1901466\u0022\u003EView documentation\u003C\/a\u003E\r\nRedirects from the cart form or checkout form to PayPal for hosted checkout and payment, updating the order upon return. The basic EC feature set is available for review in the 2.x version of this module. This should be used instead of the standalone EC modules.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Advanced (PPA) \/ Payflow Link (PFL)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-payments-advanced?partner_id=VZ6B9QLQ8LZEE\u0022\u003ERegister a PPA account\u003C\/a\u003E\r\n\u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-payflow-link?partner_id=VZ6B9QLQ8LZEE\u0022\u003ERegister a PFL account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902734\u0022\u003EView documentation\u003C\/a\u003E\r\nThese are functionally equivalent, facilitating on-site payment via PayPal or credit card through an iframe integrated into the checkout process. The primary difference between the two is that PPA is U.S. and Canada only and uses PayPal as the merchant account provider while PFL works internationally and lets the merchant use another merchant account provider. A comprehensive integration is available for review in the 2.x version of this module.\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EThis project integrates Drupal Commerce with various PayPal payment solutions. The primary integration method for both versions of the module (Drupal 9+ vs. Drupal 7) is \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/standard\/\u0022 rel=\u0022nofollow\u0022\u003EPayPal Checkout\u003C\/a\u003E, which supports payment via PayPal account, Pay Later, Venmo, and credit or debit card.\u003C\/p\u003E\n\u003Cp\u003EPay Later, formerly known as PayPal Credit, lets merchants extend financing opportunities to their customers, which can be advertised on Add to Cart forms or through a custom block defined by this module. See how it works in the \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/pay-later\/us\/commerce-platforms\/centarro\/\u0022 rel=\u0022nofollow\u0022\u003EPayPal documentation\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022adding-the-paypal-funding-source-to-order-pages\u0022\u003EAdding the PayPal funding source to order pages\u003C\/h2\u003E\n\u003Cp\u003EPayPal Checkout displays payment buttons based on your Drupal Commerce configuration, the merchant\u0027s PayPal account configuration, and the customer\u0027s device. The option selected by the customer will be saved to an order\u0027s data property as the funding source. However, there is no default place in the user interface to display such information.\u003C\/p\u003E\n\u003Cp\u003EOn Drupal 9 or later, to show this to your customer or store managers, you will need to edit the relevant theme templates and print the \u003Ccode\u003Eorder.funding_source\u003C\/code\u003E added to the list of available variables by this module. To see if you\u0027re eligible to accept Venmo as a funding source, consult the latest \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/pay-with-venmo\/#link-eligibility\u0022 rel=\u0022nofollow\u0022\u003EPayPal documentation\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022other-integrated-solutions\u0022\u003EOther integrated solutions\u003C\/h2\u003E\n\u003Cp\u003EWe recommend migrating to PayPal Checkout from older payment solutions if at all possible. However, Payflow is still required to use PayPal with a third party payment processor. The full list of supported payment solutions includes:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EPayflow Link - D9, D7\n\u003C\/li\u003E\u003Cli\u003EPayflow Pro - D9\n\u003C\/li\u003E\u003Cli\u003EPayPal Express Checkout (EC) - D9, D7\n\u003C\/li\u003E\u003Cli\u003EPayPal Payments Standard (WPS) - D7\n\u003C\/li\u003E\u003Cli\u003EPayPal Payments Advanced (PPA) - D7\n\u003C\/li\u003E\u003Cli\u003EPayPal Payments Pro - D7\n\u003C\/li\u003E\u003C\/ul\u003E\n\u003Cp\u003EThe PayPal WPS \/ EC integration supports PayPal\u0027s Instant Payment Notifications (IPNs) to react to authorizations, captures, voids, and refunds with full logging for testing and debugging. The PayPal Checkout integration does the same via \u003Ca href=\u0022https:\/\/developer.paypal.com\/api\/rest\/webhooks\/\u0022 rel=\u0022nofollow\u0022\u003EREST API webhooks\u003C\/a\u003E. It does not currently support Billing Agreements, \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/multiparty\/checkout\/multiseller-payments\/\u0022 rel=\u0022nofollow\u0022\u003Emulti-seller payments\u003C\/a\u003E, or other advanced features like the \u003Ca href=\u0022https:\/\/developer.paypal.com\/docs\/checkout\/standard\/customize\/shipping-options\/\u0022 rel=\u0022nofollow\u0022\u003Eshipping callback\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EAll of the above integrations were reviewed and certified by PayPal. Contact \u003Ca href=\u0022https:\/\/www.centarro.io\/products\/centarro-support#contact\u0022 rel=\u0022nofollow\u0022\u003ECentarro\u003C\/a\u003E to inquire about adding new features or certified integrations to the module.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022development-notes\u0022\u003EDevelopment notes\u003C\/h2\u003E\n\u003Cp\u003EIf you have unanswered questions about how PayPal\u0027s services work or want to contribute to the development of this project, you can find PDF guides and HTML resource pages for every PayPal service  on their \u003Ca href=\u0022https:\/\/developer.paypal.com\u0022 rel=\u0022nofollow\u0022\u003Edeveloper network\u003C\/a\u003E. Before requesting a feature or code change, please ensure it is supported by PayPal and provide a link to the documentation backing up your request.\u003C\/p\u003E\n\u003Cp\u003EIf your PayPal API requests are failing due to SSL certificate verification, refer to the comments in the cURL request preparation of commerce_paypal_api_request() to read how to specify a local CA certificate bundle file.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022drupal-7-documentation-faqs\u0022\u003EDrupal 7 documentation + FAQs\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#1\u0022 rel=\u0022nofollow\u0022\u003EWhat do I need to configure in my PayPal profile to use this module?\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#2\u0022 rel=\u0022nofollow\u0022\u003EDo I need to configure the IPN settings in my PayPal profile?\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#3\u0022 rel=\u0022nofollow\u0022\u003EWhat can I do if IPNs are failing?\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#4\u0022 rel=\u0022nofollow\u0022\u003EWhat URL do I use for auto return from PayPal Payments Standard?\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1902660#5\u0022 rel=\u0022nofollow\u0022\u003EWhy isn\u0027t my currency shown in the currency select list?\u003C\/a\u003E\n\u003C\/li\u003E\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote:\u003C\/strong\u003E you will only receive IPNs from PayPal if you do your testing on a public web server to which PayPal can actually POST notifications. Installations on your localhost or behind HTTP authentication will not be accessible by PayPal, so your PayPal WPS payments will never appear on your orders.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Standard (WPS)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/us\/webapps\/mpp\/referral\/paypal-payments-standard?partner_id=VZ6B9QLQ8LZEE\u0022 rel=\u0022nofollow\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902654\u0022 rel=\u0022nofollow\u0022\u003EView documentation\u003C\/a\u003E\u003Cbr\u003E\nRedirects from checkout to PayPal and includes IPN support for authorizations during checkout, prior authorization captures, authorizations plus capture during checkout (\u0022Sale\u0022), voids, and refunds.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Pro (WPP)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/us\/webapps\/mpp\/referral\/paypal-payments-pro?partner_id=VZ6B9QLQ8LZEE\u0022 rel=\u0022nofollow\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902656\u0022 rel=\u0022nofollow\u0022\u003EView documentation\u003C\/a\u003E\u003Cbr\u003E\nSupports authorization and authorization plus capture during checkout (\u0022Sale\u0022). Authorization only transactions can be captured on the site or at PayPal with IPN support coming in the next release candidate to mark pending authorization transactions as complete locally that were captured at PayPal.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPayPal Express Checkout (EC)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-express-checkout?partner_id=VZ6B9QLQ8LZEE\u0022 rel=\u0022nofollow\u0022\u003ERegister an account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1901466\u0022 rel=\u0022nofollow\u0022\u003EView documentation\u003C\/a\u003E\u003Cbr\u003E\nRedirects from the cart form or checkout form to PayPal for hosted checkout and payment, updating the order upon return. The basic EC feature set is available for review in the 2.x version of this module. This should be used instead of the standalone EC modules.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EPayPal Payments Advanced (PPA) \/ Payflow Link (PFL)\u003C\/strong\u003E - \u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-payments-advanced?partner_id=VZ6B9QLQ8LZEE\u0022 rel=\u0022nofollow\u0022\u003ERegister a PPA account\u003C\/a\u003E\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.paypal.com\/webapps\/mpp\/referral\/paypal-payflow-link?partner_id=VZ6B9QLQ8LZEE\u0022 rel=\u0022nofollow\u0022\u003ERegister a PFL account\u003C\/a\u003E | \u003Ca href=\u0022http:\/\/drupal.org\/node\/1902734\u0022 rel=\u0022nofollow\u0022\u003EView documentation\u003C\/a\u003E\u003Cbr\u003E\nThese are functionally equivalent, facilitating on-site payment via PayPal or credit card through an iframe integrated into the checkout process. The primary difference between the two is that PPA is U.S. and Canada only and uses PayPal as the merchant account provider while PFL works internationally and lets the merchant use another merchant account provider. A comprehensive integration is available for review in the 2.x version of this module.\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00227.x-1.x\u0022:58,\u00227.x-2.x\u0022:4511,\u00228.x-1.x\u0022:5724}","field_active_installs_total":10293,"field_composer_namespace":"drupal\/commerce_paypal","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/commerce_paypal\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"commerce_paypal","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","meta":{"drupal_internal__target_id":3661446}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/uid?resourceVersion=id%3A20011676"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/relationships\/uid?resourceVersion=id%3A20011676"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/field_development_status?resourceVersion=id%3A20011676"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/relationships\/field_development_status?resourceVersion=id%3A20011676"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/field_maintenance_status?resourceVersion=id%3A20011676"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/relationships\/field_maintenance_status?resourceVersion=id%3A20011676"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/field_module_categories?resourceVersion=id%3A20011676"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/relationships\/field_module_categories?resourceVersion=id%3A20011676"}}},"field_project_images":{"data":[{"type":"file--file","id":"9c7f71be-932f-4f85-a060-e88b28c638b0","meta":{"alt":"","title":null,"width":706,"height":518,"drupal_internal__target_id":21067}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/field_project_images?resourceVersion=id%3A20011676"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/f58e3714-2506-43c5-b3ca-6b10617d6098\/relationships\/field_project_images?resourceVersion=id%3A20011676"}}}}},{"type":"node--project_module","id":"9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283?resourceVersion=id%3A20044590"}},"attributes":{"drupal_internal__nid":2951108,"status":true,"title":"View Password","created":"2018-03-08T10:32:25+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"This is a lightweight, user-friendly module that allows a user to toggle between showing or hiding the entered password before submitting the form. \r\n\r\nThis module does not in any way display existing encrypted passwords from the database, but merely allows the user to display the entered password before submission as plain text via JavaScript.\r\n\r\n\u003Ch2\u003EFunctionality\u003C\/h2\u003E\r\nWhen installed, an icon of a crossed eye is added next to the password field on the log in form. \r\nBy toggling on the eye icon the password will be displayed or hidden.\r\n\r\n\r\n\u003Ch2\u003EConfiguration\u003C\/h2\u003E\r\nTo enable this feature for any form, it needs to be configured on the configuration page of the module. This configuration can then be exported\/imported.\r\n\r\n\r\n\u003Cstrong\u003E#D8AX - I \u003Ca href=\u0022http:\/\/groups.drupal.org\/node\/66323\u0022\u003Epledge\u003C\/a\u003E to make this module as \u003Ca href=\u0022http:\/\/drupal.org\/node\/394094\u0022\u003Eaccessible as it can be\u003C\/a\u003E. If you find any flaws, please \u003Ca href=\u0022\/project\/issues\/view_password\u0022\u003Esubmit an issue\u003C\/a\u003E. Help me fix them if you can.\u003C\/strong\u003E\r\n\r\n\r\nThe 6.0.x branch is also Drupal 9\/10 compatible, and new features are being added. \r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EThis is a lightweight, user-friendly module that allows a user to toggle between showing or hiding the entered password before submitting the form. \u003C\/p\u003E\n\u003Cp\u003EThis module does not in any way display existing encrypted passwords from the database, but merely allows the user to display the entered password before submission as plain text via JavaScript.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022functionality\u0022\u003EFunctionality\u003C\/h2\u003E\n\u003Cp\u003EWhen installed, an icon of a crossed eye is added next to the password field on the log in form.\u003Cbr\u003E\nBy toggling on the eye icon the password will be displayed or hidden.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022configuration\u0022\u003EConfiguration\u003C\/h2\u003E\n\u003Cp\u003ETo enable this feature for any form, it needs to be configured on the configuration page of the module. This configuration can then be exported\/imported.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003E#D8AX - I \u003Ca href=\u0022http:\/\/groups.drupal.org\/node\/66323\u0022 rel=\u0022nofollow\u0022\u003Epledge\u003C\/a\u003E to make this module as \u003Ca href=\u0022http:\/\/drupal.org\/node\/394094\u0022 rel=\u0022nofollow\u0022\u003Eaccessible as it can be\u003C\/a\u003E. If you find any flaws, please \u003Ca href=\u0022\/project\/issues\/view_password\u0022 rel=\u0022nofollow\u0022\u003Esubmit an issue\u003C\/a\u003E. Help me fix them if you can.\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003EThe 6.0.x branch is also Drupal 9\/10 compatible, and new features are being added. \u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Allows the site users to validate their password input before the submission of the form. \r\nDoes this by exposing the password content when clicking on the icon of an \u003Cem\u003Eeye\u003C\/em\u003E next to password input field before submission of the form. \r\n\r\nSite builders can choose in which form to apply the functionality by accessing the configuration page of the module."},"field_active_installs":"{\u00228.x-4.x\u0022:4,\u00228.x-5.x\u0022:49,\u00226.0.x\u0022:7584}","field_active_installs_total":7637,"field_composer_namespace":"drupal\/view_password","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"view_password","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"e8a182f9-9f1d-4273-9720-93a6d64fc697","meta":{"drupal_internal__target_id":3494063}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/uid?resourceVersion=id%3A20044590"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/relationships\/uid?resourceVersion=id%3A20044590"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/field_development_status?resourceVersion=id%3A20044590"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/relationships\/field_development_status?resourceVersion=id%3A20044590"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/field_maintenance_status?resourceVersion=id%3A20044590"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/relationships\/field_maintenance_status?resourceVersion=id%3A20044590"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3df293b3-c9a1-4232-962b-3c8169e8e6e3","meta":{"drupal_internal__target_id":203}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","meta":{"drupal_internal__target_id":189}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/field_module_categories?resourceVersion=id%3A20044590"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/relationships\/field_module_categories?resourceVersion=id%3A20044590"}}},"field_project_images":{"data":[{"type":"file--file","id":"03315b7d-1050-4e55-9447-0ea166a500c3","meta":{"alt":"The module adds the crossed eye icon when the password is not shown","title":null,"width":490,"height":317,"drupal_internal__target_id":30201}},{"type":"file--file","id":"b713ecbe-9331-4ac5-a08e-2c31f5cb255b","meta":{"alt":"When clicked, the eye opens and the password is visible","title":null,"width":483,"height":321,"drupal_internal__target_id":30202}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/field_project_images?resourceVersion=id%3A20044590"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/9ea06ebb-d5e9-46cb-b5a1-c7db73cf2283\/relationships\/field_project_images?resourceVersion=id%3A20044590"}}}}},{"type":"node--project_module","id":"eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a?resourceVersion=id%3A20013914"}},"attributes":{"drupal_internal__nid":1126726,"status":true,"title":"Commerce Stock","created":"2011-04-14T01:45:44+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"\u003Ch2\u003ECommerce Stock\u003C\/h2\u003E\r\n\r\nCommerce Stock module, for Drupal Commerce.\r\n\r\nThis module provides stock management for Drupal Commerce stores.\r\n\r\n\r\n\u003Ch2\u003EDrupal 8\/9\/10\u003C\/h2\u003E\r\nThis implementation is significantly different from the Drupal 7 implementation. Below are some of the main differences:\r\n\u003Cul\u003E\r\n  \u003Cli\u003E Transaction-based inventory management - Improves performance, Provides Stock history and audit, and supports more use cases.  \u003C\/li\u003E\r\n \u003Cli\u003EMulti store support\u003C\/li\u003E\r\n \u003Cli\u003EMultiple Stock location\u003C\/li\u003E\r\n \u003Cli\u003EServiceses and OOP implementation for more structured custom development\u003C\/li\u003E\r\n \u003Cli\u003EVarious stock entry methods\u003C\/li\u003E\r\n \u003Cli\u003EStock aggregation modes and Transactions retention configuration for supporting both Enterprise and Small e-shops \u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n\u003Ch3\u003EStandard setup for Commerce stock\u003C\/h3\u003E\r\n\r\n\r\n1. Enable the following modules\r\n\u003Cul\u003E\r\n  \u003Cli\u003ECommerce Stock API\u003C\/li\u003E\r\n  \u003Cli\u003ECommerce Stock Field\u003C\/li\u003E\r\n  \u003Cli\u003ECommerce Stock Local Storage\u003C\/li\u003E\r\n  \u003Cli\u003ECommerce Stock UI\u003C\/li\u003E\r\n  \u003Cli\u003ECommerce Stock Enforcement (optional)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n2. Commerce \u003E\u003E Configuration \u003E\u003E Stock \u003E\u003E Stock configuration\r\n\u003Cul\u003E\r\n  \u003Cli\u003ESet Default service to \u0022Local stock\u0022 (optionally select Local stock only for product variations that should be controlled by stock)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n3. Commerce \u003E\u003E Configuration \u003E\u003E Products \u003E\u003E Product variation types assuming you\r\nonly have Default Product variation type\r\n\u003Cul\u003E\r\n  \u003Cli\u003EManage fields\u003C\/li\u003E\r\n  \u003Cli\u003EAdd field\u003C\/li\u003E\r\n  \u003Cli\u003ESelect \u0022Stock Level\u0022 under the \u0022General\u0022 section and name the field \u0022stock\u003C\/li\u003E\r\n  \u003Cli\u003Elevel\u0022\u003C\/li\u003E\r\n  \u003Cli\u003ESave and continue\u003C\/li\u003E\r\n  \u003Cli\u003E\u0022Allowed number of values\u0022 is set to 1 - \u0022Save field settings\u0022\u003C\/li\u003E\r\n  \u003Cli\u003E\u0022Save settings\u0022 one last time\u003C\/li\u003E\r\n  \u003Cli\u003EIf you have more product variation types:\u003C\/li\u003E\r\n  \u003Cli\u003EReuse the field that was created for the Default Product variation type: \u0022field_stock_level\u0022\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n\r\n\r\n\u003Ch3\u003EOther configuration\u003C\/h3\u003E\r\n\r\n\u003Cstrong\u003EUsing Widgets for updating stock\u003C\/strong\u003E\r\n\r\nCommerce stock comes with three widgets for stock level editing.\r\nTo set the widget, go to the \u0022Manage form display\u0022 of the product variation\r\ntype you want to set and use the Widget drop-down of the \u0022Stock Level\u0022 field.\r\n\r\nThe following are the widgets and their functionality:\u003Cul\u003E\r\n  \u003Cli\u003E\u0022Absolute stock level\u0022 - This is the equivalent to the Drupal 7 version and allows setting the current stock level. The list secure approach and not recommended for live sites as other stock transactions can occur from the point a stock count was made and the entering of the data. Can be handy for priming a new site and stock takes while in maintenance mode.\u003C\/li\u003E\r\n  \u003Cli\u003E\u0022Simple stock transaction\u0022 - A simple form for creating transactions. Allows for entering of positive (stock in) and negative (stock out) transactions. Targeted at simple sites that don\u0027t require much extra metadata about their transactions.\u003C\/li\u003E\r\n  \u003Cli\u003E\u0022Link to stock transaction form\u0022 - This provides a link to a transaction form providing full transaction details.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nBoth \u0022Absolute stock level\u0022 and \u0022Simple stock transaction\u0022 also have the options: \u0022Allow custom note per transaction.\u0022 and \u0022Allow decimal quantities\u0022.\r\nThis and more are available on the \u0022stock transaction form\u0022 so not needed as an options for the \u0022Link to stock transaction form\u0022 widget.\r\n\r\n\u003Cstrong\u003EEvent handling\u003C\/strong\u003E\r\nBy default, the stock system reacts only on \u0022order complete\u0022 events - creates a\r\nnegative transaction resulting with that stock no longer available.\r\nYou can enable 2 more events by going to:\r\nCommerce \u003E\u003E Configuration \u003E\u003E Stock \u003E\u003E Stock configuration\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003EAutomatically return stock on cancel - Creates a positive stock transaction and makes the stock available again\u003C\/li\u003E\r\n  \u003Cli\u003EAdjust stock on order updates (after the order was completed) - Allows to modify a placed order and any changes to quantities will get reflected in stock levels.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003EStock enforcement\u003C\/strong\u003E\r\nBy default, the stock system allows stock to go into negative (i.e. a user can purchase 10 items if the product has only 5 in stock). To have the module enforce the stock levels you must enable Commerce Stock Enforcement module.\r\n\r\n\u003Cstrong\u003ESupport multiple stores\u003C\/strong\u003E\r\nEach store will have a primary location for creating transactions against. Each store will have a list of locations available for fulfilment (this is for checking of stock not for creating transactions).\r\nTo support multiple stores you must add the following fields to relevant Store types (we may automate this later on):\r\n\u003Cul\u003E\r\n  \u003Cli\u003EAvailable stock locations (field_available_stock_locations) - Entity reference to stock location - unlimited\u003C\/li\u003E\r\n  \u003Cli\u003EStock allocation location (field_stock_allocation_location) - Entity reference to stock location - 1\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nHow to add a stock locations reference field:\u003Col\u003E\r\n  \u003Cli\u003EAdd a new field\u003C\/li\u003E\r\n  \u003Cli\u003ESelect Reference: Other.\u003C\/li\u003E\r\n  \u003Cli\u003EEnter the label and make sure the machine name is correct.\u003C\/li\u003E\r\n  \u003Cli\u003ESet the \u0022Type of item to reference\u0022 to \u0022Stock Location\u0022 and the \u0022Allowed number of values\u0022\u003C\/li\u003E\r\n  \u003Cli\u003EPress Save Field settings\u003C\/li\u003E\r\n  \u003Cli\u003ESet the \u0022Stock location type\u0022\u003C\/li\u003E\r\n  \u003Cli\u003EPress Save Setting\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\nYou can then edit each of the stores and set the locations.\r\n\r\n\r\nFor up to date instructions see the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/commerce_stock\/blob\/8.x-1.x\/README.md\u0022\u003Ereadme\u003C\/a\u003E file\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u003Ch2\u003ECommerce Stock for Drupal 7 - version 2\u003C\/h2\u003E\r\n\r\nThis version should be used for Drupal 7 sites .\r\n\r\nThe module uses rules for implementation of the stock checking and allows for more flexibility, it also uses an API submodules architecture allowing the extension of the functionality.\r\nThe module currently implements a sub module \u0027simple stock\u0027 providing most of the features in version 1 out of the box.\r\nTo implement your own business logic: install the modules and configure the rules.\r\n\r\n\u003Cstrong\u003EKey Features of V2\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EA rule and action for enabling and disabling the add to cart form.\u003C\/li\u003E\r\n  \u003Cli\u003EA rule and action for validating stock for the add to cart button action.\u003C\/li\u003E\r\n  \u003Cli\u003EA rule for checking the cart form submit, also used  for checkout submit and review submit.\u003C\/li\u003E\r\n  \u003Cli\u003EA new checkout pane placed in the first step of checkout: stops the user from accessing checkout if order contains out of stock items\u003C\/li\u003E\r\n  \u003Cli\u003ESupports Decimal stock.\u003C\/li\u003E\r\n  \u003Cli\u003EWorks with \u003Ca href=\u0022https:\/\/drupal.org\/project\/inline_entity_form\u0022 title=\u0022Inline Entity Form module\u0022\u003EInline Entity Form\u003C\/a\u003E module.\u003C\/li\u003E\r\n  \u003Cli\u003EAdvance configuration of the add to cart button action for even more control\u003C\/li\u003E\r\n  \u003Cli\u003ECommerce Stock field formatter for converting stock levels into text messages.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003EInstallation and setup\u003C\/strong\u003E\r\n1. Download commerce_stock\r\n2. Enable the Commerce Stock API, Commerce Simple Stock, and Commerce Simple Stock Rules modules.\r\n3. Go to Home \u00bb Administration \u00bb Store \u00bb Configuration \u00bb Stock management\r\n4. Select the \u201csimple stock management\u201d tab\r\n5. Check the product types you want simple stock to manage and hit submit\r\n\r\n \r\nImportant: you may need to clear caches after installing and enabling stock for your products!\r\n\r\n\r\n\u003Cstrong\u003Eadd to cart validation\u003C\/strong\u003E\r\nThe add to cart is now checked using rules: Event \u0022Check if a product is in stock\u0022\r\nIt passes in the Product, Requested Quantity, the Quantity already in the cart \u0026 the total requested (Requested+ already in cart)\r\nThe action \u0022Set the result of a stock check\u0022 allows you to set the following\r\nstock action:\r\nblock transaction - block adding to cart and display a message to the user\r\ndisplay message only - allows adding to cart and display a message to the user\r\nMessage: the message to display to the user\r\nApproved Quantity: the quantity to add to the cart, allows you to approve 1 if 3 where asked for and two already in cart.\r\n\r\n\r\n\u003Cstrong\u003EAdvanced configuration of the add to cart form\u003C\/strong\u003E\r\nThis action will allow us to do much more then just disable the add to cart.\r\nOptions are:\r\n\u003Cul\u003E\r\n  \u003Cli\u003E Convert the add to cart button to a custom link\u003C\/li\u003E\r\n  \u003Cli\u003E Replace the add to cart button with user defined HTML\u003C\/li\u003E\r\n  \u003Cli\u003E Override the forms validation and submit functions\u003C\/li\u003E\r\n  \u003Cli\u003E Disable the quantity box if active\u003C\/li\u003E\r\n  \u003Cli\u003E Added Prefix and Suffix to the submit element\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003ERelated projects\u003C\/strong\u003E\r\nCommerce decimal quantities: http:\/\/drupal.org\/project\/commerce_decimal_quantities\r\n\r\n\u003Cstrong\u003EExpend functionality using rules Issues\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1791350#comment-7035640\u0022\u003EIncrease stock when order is canceled\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1567214\u0022\u003ETranslating \u0022Out of stock\u0022 and other messages set in Rules\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1140234#comment-7116636\u0022\u003EOut of stock Text or Link instead of a disabled button\u003C\/a\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1403054\u0022\u003EBackorder \/ Waitlist Capabilities\u003C\/a\u003E see comment \u003Ca href=\u0022http:\/\/drupal.org\/node\/1403054#comment-7325802\u0022\u003E#17\u003C\/a\u003E for a good approach.\r\n\r\n\u003C\/ul\u003E\r\n\r\n\r\n\r\n\u003Ch2\u003ECommerce Stock  for Drupal 7 - Version 1\u003C\/h2\u003E\r\n\r\nCheck out \u003Ca href=\u0022http:\/\/commerceguys.com\/blog\/commerce-module-tuesday-commerce-stock\u0022\u003ERandy Fay\u0027s Stock V1 Screencast\u003C\/a\u003E  \r\n\r\nNo new features for version 1 so maintenance only. \r\n\r\n\u003Ch3\u003ETo install and configure\u003C\/h3\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EInstall and enable the module.\r\n\u003Cli\u003EVisit admin\/commerce\/config\/stock to enable stock tracking on your product type(s).\r\n\u003Cli\u003ESet the starting value of stock on each product.\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch3\u003EThe stock module does two main things\u003C\/h3\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EMaintain stock levels\r\n\u003Cli\u003EImplement validation of stock to prevent users from ordering out of stock items\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch3\u003EThe module does the following stock validation checks\u003C\/h3\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EDisable the add to cart button for out of stock products.\r\n\u003Cli\u003EValidates the add to cart quantity widget.\r\n\u003Cli\u003EChecks current Cart quantity when adding to your cart (so if stock is 10 and you got 6 in your cart you can only add 4)\r\n\u003Cli\u003EChecks that all products and quantities in the shopping cart (\/cart) are in stock\r\n\u003Cli\u003EOn Checkout if you attempt to enter, continue or complete with out of stock items you get redirected to the shopping cart.\r\n\u003C\/ol\u003E\r\n\r\n\r\nIf you are using multiple products per display and are not using attributes:\r\n\u003Col\u003E\r\n\u003Cli\u003EMarks items as out of stock in the dropdown (version 1 only)\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch3\u003EManagement of stock\u003C\/h3\u003E\r\nEach product type that is to be stock controlled is to be enabled using the admin interface.\r\nEnabled product types will have a stock field added to them; this field will hold the current stock count.\r\nA rule is created by the module to decrease the stock level when an order is complete.\r\nThe modules also provides some rule conditions and actions (increase \/ decrease stock) for you to create your own custom rules\r\n\r\n\u003Ch3\u003EOther features\u003C\/h3\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EAbility to disable stock checking for specific products \r\n\u003C\/ol\u003E\r\n\u003Cbr \/\u003E\r\n\r\n\r\n\u003Cstrong\u003EUpgrade path from version 1:\u003C\/strong\u003E\r\nI haven\u2019t looked into this so any help will be great. For now just be aware that all rules have been rewritten.\r\nIf you have existing products with stock you will need to disable stock on all product types first, so the new decimal field gets created, you can probably backup and restore your stock using some SQL.\r\nSee also \u003Ca href=\u0022http:\/\/drupal.org\/node\/1800666\u0022\u003EIssue 1800666\u003C\/a\u003E\r\n\r\n\r\n\r\nto keep up with development plans see the \u003Ca href=\u0022http:\/\/drupal.org\/node\/1269168\u0022\u003ERoadmap\u003C\/a\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022commerce-stock\u0022\u003ECommerce Stock\u003C\/h2\u003E\n\u003Cp\u003ECommerce Stock module, for Drupal Commerce.\u003C\/p\u003E\n\u003Cp\u003EThis module provides stock management for Drupal Commerce stores.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022drupal-8-9-10\u0022\u003EDrupal 8\/9\/10\u003C\/h2\u003E\n\u003Cp\u003EThis implementation is significantly different from the Drupal 7 implementation. Below are some of the main differences:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Transaction-based inventory management - Improves performance, Provides Stock history and audit, and supports more use cases.  \u003C\/li\u003E\n\u003Cli\u003EMulti store support\u003C\/li\u003E\n\u003Cli\u003EMultiple Stock location\u003C\/li\u003E\n\u003Cli\u003EServiceses and OOP implementation for more structured custom development\u003C\/li\u003E\n\u003Cli\u003EVarious stock entry methods\u003C\/li\u003E\n\u003Cli\u003EStock aggregation modes and Transactions retention configuration for supporting both Enterprise and Small e-shops \u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022standard-setup-for-commerce-stock\u0022\u003EStandard setup for Commerce stock\u003C\/h3\u003E\n\u003Cp\u003E1. Enable the following modules\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003ECommerce Stock API\u003C\/li\u003E\n\u003Cli\u003ECommerce Stock Field\u003C\/li\u003E\n\u003Cli\u003ECommerce Stock Local Storage\u003C\/li\u003E\n\u003Cli\u003ECommerce Stock UI\u003C\/li\u003E\n\u003Cli\u003ECommerce Stock Enforcement (optional)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E2. Commerce \u0026gt;\u0026gt; Configuration \u0026gt;\u0026gt; Stock \u0026gt;\u0026gt; Stock configuration\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003ESet Default service to \u0022Local stock\u0022 (optionally select Local stock only for product variations that should be controlled by stock)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E3. Commerce \u0026gt;\u0026gt; Configuration \u0026gt;\u0026gt; Products \u0026gt;\u0026gt; Product variation types assuming you\u003Cbr\u003E\nonly have Default Product variation type\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EManage fields\u003C\/li\u003E\n\u003Cli\u003EAdd field\u003C\/li\u003E\n\u003Cli\u003ESelect \u0022Stock Level\u0022 under the \u0022General\u0022 section and name the field \u0022stock\u003C\/li\u003E\n\u003Cli\u003Elevel\u0022\u003C\/li\u003E\n\u003Cli\u003ESave and continue\u003C\/li\u003E\n\u003Cli\u003E\u0022Allowed number of values\u0022 is set to 1 - \u0022Save field settings\u0022\u003C\/li\u003E\n\u003Cli\u003E\u0022Save settings\u0022 one last time\u003C\/li\u003E\n\u003Cli\u003EIf you have more product variation types:\u003C\/li\u003E\n\u003Cli\u003EReuse the field that was created for the Default Product variation type: \u0022field_stock_level\u0022\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022other-configuration\u0022\u003EOther configuration\u003C\/h3\u003E\n\u003Cp\u003E\u003Cstrong\u003EUsing Widgets for updating stock\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003ECommerce stock comes with three widgets for stock level editing.\u003Cbr\u003E\nTo set the widget, go to the \u0022Manage form display\u0022 of the product variation\u003Cbr\u003E\ntype you want to set and use the Widget drop-down of the \u0022Stock Level\u0022 field.\u003C\/p\u003E\n\u003Cp\u003EThe following are the widgets and their functionality:\n\u003C\/p\u003E\u003Cul\u003E\n\u003Cli\u003E\u0022Absolute stock level\u0022 - This is the equivalent to the Drupal 7 version and allows setting the current stock level. The list secure approach and not recommended for live sites as other stock transactions can occur from the point a stock count was made and the entering of the data. Can be handy for priming a new site and stock takes while in maintenance mode.\u003C\/li\u003E\n\u003Cli\u003E\u0022Simple stock transaction\u0022 - A simple form for creating transactions. Allows for entering of positive (stock in) and negative (stock out) transactions. Targeted at simple sites that don\u0027t require much extra metadata about their transactions.\u003C\/li\u003E\n\u003Cli\u003E\u0022Link to stock transaction form\u0022 - This provides a link to a transaction form providing full transaction details.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EBoth \u0022Absolute stock level\u0022 and \u0022Simple stock transaction\u0022 also have the options: \u0022Allow custom note per transaction.\u0022 and \u0022Allow decimal quantities\u0022.\u003Cbr\u003E\nThis and more are available on the \u0022stock transaction form\u0022 so not needed as an options for the \u0022Link to stock transaction form\u0022 widget.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EEvent handling\u003C\/strong\u003E\u003Cbr\u003E\nBy default, the stock system reacts only on \u0022order complete\u0022 events - creates a\u003Cbr\u003E\nnegative transaction resulting with that stock no longer available.\u003Cbr\u003E\nYou can enable 2 more events by going to:\u003Cbr\u003E\nCommerce \u0026gt;\u0026gt; Configuration \u0026gt;\u0026gt; Stock \u0026gt;\u0026gt; Stock configuration\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAutomatically return stock on cancel - Creates a positive stock transaction and makes the stock available again\u003C\/li\u003E\n\u003Cli\u003EAdjust stock on order updates (after the order was completed) - Allows to modify a placed order and any changes to quantities will get reflected in stock levels.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003EStock enforcement\u003C\/strong\u003E\u003Cbr\u003E\nBy default, the stock system allows stock to go into negative (i.e. a user can purchase 10 items if the product has only 5 in stock). To have the module enforce the stock levels you must enable Commerce Stock Enforcement module.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ESupport multiple stores\u003C\/strong\u003E\u003Cbr\u003E\nEach store will have a primary location for creating transactions against. Each store will have a list of locations available for fulfilment (this is for checking of stock not for creating transactions).\u003Cbr\u003E\nTo support multiple stores you must add the following fields to relevant Store types (we may automate this later on):\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAvailable stock locations (field_available_stock_locations) - Entity reference to stock location - unlimited\u003C\/li\u003E\n\u003Cli\u003EStock allocation location (field_stock_allocation_location) - Entity reference to stock location - 1\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EHow to add a stock locations reference field:\n\u003C\/p\u003E\u003Col\u003E\n\u003Cli\u003EAdd a new field\u003C\/li\u003E\n\u003Cli\u003ESelect Reference: Other.\u003C\/li\u003E\n\u003Cli\u003EEnter the label and make sure the machine name is correct.\u003C\/li\u003E\n\u003Cli\u003ESet the \u0022Type of item to reference\u0022 to \u0022Stock Location\u0022 and the \u0022Allowed number of values\u0022\u003C\/li\u003E\n\u003Cli\u003EPress Save Field settings\u003C\/li\u003E\n\u003Cli\u003ESet the \u0022Stock location type\u0022\u003C\/li\u003E\n\u003Cli\u003EPress Save Setting\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Cp\u003EYou can then edit each of the stores and set the locations.\u003C\/p\u003E\n\u003Cp\u003EFor up to date instructions see the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/commerce_stock\/blob\/8.x-1.x\/README.md\u0022 rel=\u0022nofollow\u0022\u003Ereadme\u003C\/a\u003E file\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022commerce-stock-for-drupal-7-version-2\u0022\u003ECommerce Stock for Drupal 7 - version 2\u003C\/h2\u003E\n\u003Cp\u003EThis version should be used for Drupal 7 sites .\u003C\/p\u003E\n\u003Cp\u003EThe module uses rules for implementation of the stock checking and allows for more flexibility, it also uses an API submodules architecture allowing the extension of the functionality.\u003Cbr\u003E\nThe module currently implements a sub module \u0027simple stock\u0027 providing most of the features in version 1 out of the box.\u003Cbr\u003E\nTo implement your own business logic: install the modules and configure the rules.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EKey Features of V2\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EA rule and action for enabling and disabling the add to cart form.\u003C\/li\u003E\n\u003Cli\u003EA rule and action for validating stock for the add to cart button action.\u003C\/li\u003E\n\u003Cli\u003EA rule for checking the cart form submit, also used  for checkout submit and review submit.\u003C\/li\u003E\n\u003Cli\u003EA new checkout pane placed in the first step of checkout: stops the user from accessing checkout if order contains out of stock items\u003C\/li\u003E\n\u003Cli\u003ESupports Decimal stock.\u003C\/li\u003E\n\u003Cli\u003EWorks with \u003Ca href=\u0022https:\/\/drupal.org\/project\/inline_entity_form\u0022 rel=\u0022nofollow\u0022\u003EInline Entity Form\u003C\/a\u003E module.\u003C\/li\u003E\n\u003Cli\u003EAdvance configuration of the add to cart button action for even more control\u003C\/li\u003E\n\u003Cli\u003ECommerce Stock field formatter for converting stock levels into text messages.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003EInstallation and setup\u003C\/strong\u003E\u003Cbr\u003E\n1. Download commerce_stock\u003Cbr\u003E\n2. Enable the Commerce Stock API, Commerce Simple Stock, and Commerce Simple Stock Rules modules.\u003Cbr\u003E\n3. Go to Home \u00bb Administration \u00bb Store \u00bb Configuration \u00bb Stock management\u003Cbr\u003E\n4. Select the \u201csimple stock management\u201d tab\u003Cbr\u003E\n5. Check the product types you want simple stock to manage and hit submit\u003C\/p\u003E\n\u003Cp\u003EImportant: you may need to clear caches after installing and enabling stock for your products!\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003Eadd to cart validation\u003C\/strong\u003E\u003Cbr\u003E\nThe add to cart is now checked using rules: Event \u0022Check if a product is in stock\u0022\u003Cbr\u003E\nIt passes in the Product, Requested Quantity, the Quantity already in the cart \u0026amp; the total requested (Requested+ already in cart)\u003Cbr\u003E\nThe action \u0022Set the result of a stock check\u0022 allows you to set the following\u003Cbr\u003E\nstock action:\u003Cbr\u003E\nblock transaction - block adding to cart and display a message to the user\u003Cbr\u003E\ndisplay message only - allows adding to cart and display a message to the user\u003Cbr\u003E\nMessage: the message to display to the user\u003Cbr\u003E\nApproved Quantity: the quantity to add to the cart, allows you to approve 1 if 3 where asked for and two already in cart.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EAdvanced configuration of the add to cart form\u003C\/strong\u003E\u003Cbr\u003E\nThis action will allow us to do much more then just disable the add to cart.\u003Cbr\u003E\nOptions are:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Convert the add to cart button to a custom link\u003C\/li\u003E\n\u003Cli\u003E Replace the add to cart button with user defined HTML\u003C\/li\u003E\n\u003Cli\u003E Override the forms validation and submit functions\u003C\/li\u003E\n\u003Cli\u003E Disable the quantity box if active\u003C\/li\u003E\n\u003Cli\u003E Added Prefix and Suffix to the submit element\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003ERelated projects\u003C\/strong\u003E\u003Cbr\u003E\nCommerce decimal quantities: \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_decimal_quantities\u0022 rel=\u0022nofollow\u0022\u003Ehttp:\/\/drupal.org\/project\/commerce_decimal_quantities\u003C\/a\u003E\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EExpend functionality using rules Issues\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1791350#comment-7035640\u0022 rel=\u0022nofollow\u0022\u003EIncrease stock when order is canceled\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1567214\u0022 rel=\u0022nofollow\u0022\u003ETranslating \u0022Out of stock\u0022 and other messages set in Rules\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1140234#comment-7116636\u0022 rel=\u0022nofollow\u0022\u003EOut of stock Text or Link instead of a disabled button\u003C\/a\u003E\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/node\/1403054\u0022 rel=\u0022nofollow\u0022\u003EBackorder \/ Waitlist Capabilities\u003C\/a\u003E see comment \u003Ca href=\u0022http:\/\/drupal.org\/node\/1403054#comment-7325802\u0022 rel=\u0022nofollow\u0022\u003E#17\u003C\/a\u003E for a good approach.\n\u003C\/li\u003E\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022commerce-stock-for-drupal-7-version-1\u0022\u003ECommerce Stock  for Drupal 7 - Version 1\u003C\/h2\u003E\n\u003Cp\u003ECheck out \u003Ca href=\u0022http:\/\/commerceguys.com\/blog\/commerce-module-tuesday-commerce-stock\u0022 rel=\u0022nofollow\u0022\u003ERandy Fay\u0027s Stock V1 Screencast\u003C\/a\u003E  \u003C\/p\u003E\n\u003Cp\u003ENo new features for version 1 so maintenance only. \u003C\/p\u003E\n\u003Ch3 id=\u0022to-install-and-configure\u0022\u003ETo install and configure\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EInstall and enable the module.\n\u003C\/li\u003E\u003Cli\u003EVisit admin\/commerce\/config\/stock to enable stock tracking on your product type(s).\n\u003C\/li\u003E\u003Cli\u003ESet the starting value of stock on each product.\n\u003C\/li\u003E\u003C\/ol\u003E\n\u003Ch3 id=\u0022the-stock-module-does-two-main-things\u0022\u003EThe stock module does two main things\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EMaintain stock levels\n\u003C\/li\u003E\u003Cli\u003EImplement validation of stock to prevent users from ordering out of stock items\n\u003C\/li\u003E\u003C\/ol\u003E\n\u003Ch3 id=\u0022the-module-does-the-following-stock-validation-checks\u0022\u003EThe module does the following stock validation checks\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EDisable the add to cart button for out of stock products.\n\u003C\/li\u003E\u003Cli\u003EValidates the add to cart quantity widget.\n\u003C\/li\u003E\u003Cli\u003EChecks current Cart quantity when adding to your cart (so if stock is 10 and you got 6 in your cart you can only add 4)\n\u003C\/li\u003E\u003Cli\u003EChecks that all products and quantities in the shopping cart (\/cart) are in stock\n\u003C\/li\u003E\u003Cli\u003EOn Checkout if you attempt to enter, continue or complete with out of stock items you get redirected to the shopping cart.\n\u003C\/li\u003E\u003C\/ol\u003E\n\u003Cp\u003EIf you are using multiple products per display and are not using attributes:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003EMarks items as out of stock in the dropdown (version 1 only)\n\u003C\/li\u003E\u003C\/ol\u003E\n\u003Ch3 id=\u0022management-of-stock\u0022\u003EManagement of stock\u003C\/h3\u003E\n\u003Cp\u003EEach product type that is to be stock controlled is to be enabled using the admin interface.\u003Cbr\u003E\nEnabled product types will have a stock field added to them; this field will hold the current stock count.\u003Cbr\u003E\nA rule is created by the module to decrease the stock level when an order is complete.\u003Cbr\u003E\nThe modules also provides some rule conditions and actions (increase \/ decrease stock) for you to create your own custom rules\u003C\/p\u003E\n\u003Ch3 id=\u0022other-features\u0022\u003EOther features\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EAbility to disable stock checking for specific products\n\u003C\/li\u003E\u003C\/ol\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EUpgrade path from version 1:\u003C\/strong\u003E\u003Cbr\u003E\nI haven\u2019t looked into this so any help will be great. For now just be aware that all rules have been rewritten.\u003Cbr\u003E\nIf you have existing products with stock you will need to disable stock on all product types first, so the new decimal field gets created, you can probably backup and restore your stock using some SQL.\u003Cbr\u003E\nSee also \u003Ca href=\u0022http:\/\/drupal.org\/node\/1800666\u0022 rel=\u0022nofollow\u0022\u003EIssue 1800666\u003C\/a\u003E\u003C\/p\u003E\n\u003Cp\u003Eto keep up with development plans see the \u003Ca href=\u0022http:\/\/drupal.org\/node\/1269168\u0022 rel=\u0022nofollow\u0022\u003ERoadmap\u003C\/a\u003E\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"\u003Ch2\u003ECommerce Stock\u003C\/h2\u003E\r\n\r\nCommerce Stock module, for Drupal Commerce.\r\nThis module provides stock management for Drupal Commerce stores.\r\n"},"field_active_installs":"{\u00227.x-1.x\u0022:361,\u00227.x-2.x\u0022:3127,\u00228.x-1.x\u0022:3580}","field_active_installs_total":7068,"field_composer_namespace":"drupal\/commerce_stock","field_composer_types":[],"field_core_semver_maximum":11000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"commerce_stock","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"cbf4fb70-5934-42b7-a33b-48dcc851c99b","meta":{"drupal_internal__target_id":755184}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/uid?resourceVersion=id%3A20013914"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/relationships\/uid?resourceVersion=id%3A20013914"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/field_development_status?resourceVersion=id%3A20013914"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/relationships\/field_development_status?resourceVersion=id%3A20013914"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/field_maintenance_status?resourceVersion=id%3A20013914"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/relationships\/field_maintenance_status?resourceVersion=id%3A20013914"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/field_module_categories?resourceVersion=id%3A20013914"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/relationships\/field_module_categories?resourceVersion=id%3A20013914"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/field_project_images?resourceVersion=id%3A20013914"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/eaeca5cd-55f5-4850-ae1e-9ee7fffc4a2a\/relationships\/field_project_images?resourceVersion=id%3A20013914"}}}}},{"type":"node--project_module","id":"aba6c13f-0638-4681-8b5c-127443b04762","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762?resourceVersion=id%3A20037128"}},"attributes":{"drupal_internal__nid":2627476,"status":true,"title":"Facebook Pixel","created":"2015-12-02T16:59:23+00:00","changed":"2025-01-13T05:20:03+00:00","body":{"value":"\u003Ch3\u003EAbout\u003C\/h3\u003E\r\n\r\nBasic \u003Ca href=\u0022https:\/\/www.facebook.com\/business\/help\/651294705016616\/\u0022\u003EFacebook Pixel\u003C\/a\u003E integration, allowing you to place a single pixel across your entire website to report conversions, build audiences and get rich insights about how people use your website.\r\n\r\nHandled events:\r\n\u003Cul\u003E\r\n\u003Cli\u003EViewContent\u003C\/li\u003E\r\n\u003Cli\u003ECompleteRegistration\u003C\/li\u003E\r\n\u003Cli\u003EAddToCart\u003C\/li\u003E\r\n\u003Cli\u003EInitiateCheckout\u003C\/li\u003E\r\n\u003Cli\u003EPurchase\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n(last 3 are based on the Drupal Commerce integration).\r\n\r\n\u003Ch3\u003EDevelopers\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/facebook_pixel\/tree\/facebook_pixel.api.php\u0022\u003Efacebook_pixel.api.php\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ESimilar modules\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/facebook_tracking_pixel\u0022\u003EFacebook Tracking Pixel\u003C\/a\u003E (D7)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/simple_facebook_pixel\u0022\u003ESimple Facebook Pixel\u003C\/a\u003E (D8)\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ch3 id=\u0022about\u0022\u003EAbout\u003C\/h3\u003E\n\u003Cp\u003EBasic \u003Ca href=\u0022https:\/\/www.facebook.com\/business\/help\/651294705016616\/\u0022 rel=\u0022nofollow\u0022\u003EFacebook Pixel\u003C\/a\u003E integration, allowing you to place a single pixel across your entire website to report conversions, build audiences and get rich insights about how people use your website.\u003C\/p\u003E\n\u003Cp\u003EHandled events:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EViewContent\u003C\/li\u003E\n\u003Cli\u003ECompleteRegistration\u003C\/li\u003E\n\u003Cli\u003EAddToCart\u003C\/li\u003E\n\u003Cli\u003EInitiateCheckout\u003C\/li\u003E\n\u003Cli\u003EPurchase\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E(last 3 are based on the Drupal Commerce integration).\u003C\/p\u003E\n\u003Ch3 id=\u0022developers\u0022\u003EDevelopers\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/cgit.drupalcode.org\/facebook_pixel\/tree\/facebook_pixel.api.php\u0022 rel=\u0022nofollow\u0022\u003Efacebook_pixel.api.php\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022similar-modules\u0022\u003ESimilar modules\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/facebook_tracking_pixel\u0022 rel=\u0022nofollow\u0022\u003EFacebook Tracking Pixel\u003C\/a\u003E (D7)\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/simple_facebook_pixel\u0022 rel=\u0022nofollow\u0022\u003ESimple Facebook Pixel\u003C\/a\u003E (D8)\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":""},"field_active_installs":"{\u00227.x-1.x\u0022:1386,\u00228.x-1.x\u0022:497,\u00222.x\u0022:7,\u00222.0.x\u0022:4801}","field_active_installs_total":6691,"field_composer_namespace":"drupal\/facebook_pixel","field_composer_types":[],"field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"facebook_pixel","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"6e717507-c7fd-4d60-96db-688a25ad4b95","meta":{"drupal_internal__target_id":271491}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/uid?resourceVersion=id%3A20037128"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/relationships\/uid?resourceVersion=id%3A20037128"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/field_development_status?resourceVersion=id%3A20037128"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/relationships\/field_development_status?resourceVersion=id%3A20037128"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/field_maintenance_status?resourceVersion=id%3A20037128"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/relationships\/field_maintenance_status?resourceVersion=id%3A20037128"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","meta":{"drupal_internal__target_id":195}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/field_module_categories?resourceVersion=id%3A20037128"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/relationships\/field_module_categories?resourceVersion=id%3A20037128"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/field_project_images?resourceVersion=id%3A20037128"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/node\/project_module\/aba6c13f-0638-4681-8b5c-127443b04762\/relationships\/field_project_images?resourceVersion=id%3A20037128"}}}}}],"included":[{"type":"taxonomy_term--module_categories","id":"0cd80c8e-5c20-43a8-aa3e-ec701007d443","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/0cd80c8e-5c20-43a8-aa3e-ec701007d443?resourceVersion=id%3A195"}},"attributes":{"name":"E-commerce","drupal_internal__tid":195,"status":true,"description":{"value":"Assist with aspects of running an online store, such as product management and display, shopping carts, inventory management, fulfillment, payments, taxes, and shipping.","format":"1","processed":"\u003Cp\u003EAssist with aspects of running an online store, such as product management and display, shopping carts, inventory management, fulfillment, payments, taxes, and shipping.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"7c5db130-79b8-4130-a09c-c197333e7d13","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/7c5db130-79b8-4130-a09c-c197333e7d13?resourceVersion=id%3A190"}},"attributes":{"name":"User engagement","drupal_internal__tid":190,"status":true,"description":{"value":"Enhance the site so that visitors can directly interact with it or among each other, enabling things like user-generated content, comments, voting, chat, or forms for data collection and interaction.","format":"1","processed":"\u003Cp\u003EEnhance the site so that visitors can directly interact with it or among each other, enabling things like user-generated content, comments, voting, chat, or forms for data collection and interaction.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/dcb48e9f-6afa-4842-8ef6-44b90b083fcc?resourceVersion=id%3A200"}},"attributes":{"name":"Site structure","drupal_internal__tid":200,"status":true,"description":{"value":"Extend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.","format":"1","processed":"\u003Cp\u003EExtend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3322058a-a158-4806-ac5b-9bcabc95edac?resourceVersion=id%3A185"}},"attributes":{"name":"Integrations","drupal_internal__tid":185,"status":true,"description":{"value":"Use a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.","format":"1","processed":"\u003Cp\u003EUse a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"3df293b3-c9a1-4232-962b-3c8169e8e6e3","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3df293b3-c9a1-4232-962b-3c8169e8e6e3?resourceVersion=id%3A203"}},"attributes":{"name":"Accessibility","drupal_internal__tid":203,"status":true,"description":{"value":"Enhance the site to provide a great user experience to the broadest range of people or help to audit for compliance with accessibility standards like the Web Content Accessibility Guidelines (WCAG).","format":"1","processed":"\u003Cp\u003EEnhance the site to provide a great user experience to the broadest range of people or help to audit for compliance with accessibility standards like the Web Content Accessibility Guidelines (WCAG).\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/86237004-3801-40cf-96b5-fe7d60efccb5?resourceVersion=id%3A187"}},"attributes":{"name":"Content editing experience","drupal_internal__tid":187,"status":true,"description":{"value":"Enhance the editorial interface and improve the processes and workflows around creating, editing or removing content.","format":"1","processed":"\u003Cp\u003EEnhance the editorial interface and improve the processes and workflows around creating, editing or removing content.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"01df2105-2397-4a0e-b34c-80da1c3b1208","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/01df2105-2397-4a0e-b34c-80da1c3b1208?resourceVersion=id%3A201"}},"attributes":{"name":"Search engine optimization (SEO)","drupal_internal__tid":201,"status":true,"description":{"value":"Manage or improve the site\u0027s search engine ranking by running audits, assessing metrics, or making the site\u2019s content and data more digestible by search engines.","format":"1","processed":"\u003Cp\u003EManage or improve the site\u0027s search engine ranking by running audits, assessing metrics, or making the site\u2019s content and data more digestible by search engines.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"24830916-5c07-4446-89de-960915f87bf6","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/24830916-5c07-4446-89de-960915f87bf6?resourceVersion=id%3A199"}},"attributes":{"name":"Access control","drupal_internal__tid":199,"status":true,"description":{"value":"Grant or restrict access to content, assets, or site functionality, or extend the authentication\/login process.","format":"1","processed":"\u003Cp\u003EGrant or restrict access to content, assets, or site functionality, or extend the authentication\/login process.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/754c04cb-6da2-42ba-9032-d64307f68f45?resourceVersion=id%3A188"}},"attributes":{"name":"Content display","drupal_internal__tid":188,"status":true,"description":{"value":"Configure the layout and format of content and data presented to site visitors.","format":"1","processed":"\u003Cp\u003EConfigure the layout and format of content and data presented to site visitors.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/086cebcf-200f-4c34-886e-f9921919b292?resourceVersion=id%3A189"}},"attributes":{"name":"Developer tools","drupal_internal__tid":189,"status":true,"description":{"value":"Empower developers with tools that assist with developing and debugging the frontend or backend of the site.","format":"1","processed":"\u003Cp\u003EEmpower developers with tools that assist with developing and debugging the frontend or backend of the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/089406ad-304d-4737-80d1-2f08527ae49e?resourceVersion=id%3A27271"}},"attributes":{"drupal_internal__tid":27271,"status":true,"name":"Actively maintained","description":{"value":"Maintainers strive to actively monitor issues and respond in a timely manner.","format":"1","processed":"\u003Cp\u003EMaintainers strive to actively monitor issues and respond in a timely manner.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/09a378d2-fd35-41f3-bff0-10d9801741a4?resourceVersion=id%3A27269"}},"attributes":{"drupal_internal__tid":27269,"status":true,"name":"Seeking co-maintainer(s)","description":{"value":"Maintainers are looking for help reviewing issues.","format":"1","processed":"\u003Cp\u003EMaintainers are looking for help reviewing issues.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/cee844e2-68b5-489d-bafa-6a0ade2b6dfd?resourceVersion=id%3A27273"}},"attributes":{"drupal_internal__tid":27273,"status":true,"name":"Minimally maintained","description":{"value":"Maintainers monitor issues, but fast responses are not guaranteed.","format":"1","processed":"\u003Cp\u003EMaintainers monitor issues, but fast responses are not guaranteed.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/development_status\/e767288c-9800-4fb4-aeb8-8c311533838a?resourceVersion=id%3A27274"}},"attributes":{"drupal_internal__tid":27274,"status":true,"name":"Under active development","description":{"value":"This project is under active development.","format":"1","processed":"\u003Cp\u003EThis project is under active development.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/development_status\/219c1cf2-dd7f-474b-9dd5-a26643fbc699?resourceVersion=id%3A27276"}},"attributes":{"drupal_internal__tid":27276,"status":true,"name":"Maintenance fixes only","description":{"value":"Considered feature-complete by its maintainers.","format":"1","processed":"\u003Cp\u003EConsidered feature-complete by its maintainers.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"0e260036-be60-4f88-9aa5-f9db2eee678a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/taxonomy_term\/development_status\/0e260036-be60-4f88-9aa5-f9db2eee678a?resourceVersion=id%3A27277"}},"attributes":{"drupal_internal__tid":27277,"status":true,"name":"No further development","description":{"value":"No longer developed by its maintainers.","format":"1","processed":"\u003Cp\u003ENo longer developed by its maintainers.\u003C\/p\u003E"}}},{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed"}},"attributes":{"display_name":"centarro","drupal_internal__uid":3661446,"name":"centarro","drupalorg_id":null,"field_country":"US","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":null,"field_git_username":null,"field_industries_worked_in":[],"field_last_name":null,"field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"6bc46d67-73f3-4c2d-be8c-4bb55ac8f7c5","meta":{"alt":null,"title":null,"width":400,"height":400,"drupal_internal__target_id":154011}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/relationships\/user_picture"}}}}},{"type":"user--user","id":"039134d3-4703-4681-a13e-24bb85872402","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/039134d3-4703-4681-a13e-24bb85872402"}},"attributes":{"display_name":"ericduran","drupal_internal__uid":244460,"name":"ericduran","drupalorg_id":null,"field_country":"US","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Eric","field_git_username":"ericduran","field_industries_worked_in":[],"field_last_name":"J. Duran","field_user_location":null,"field_user_picture":null,"field_user_pronouns":"He\/Him"},"relationships":{"field_mentors":{"data":[{"type":"user--user","id":"554f5234-80b1-41c8-b03f-02a5ad01f5bb","meta":{"drupal_internal__target_id":31022}},{"type":"user--user","id":"1b9862bb-009b-4295-af7a-60eeff65b7d1","meta":{"drupal_internal__target_id":146719}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/039134d3-4703-4681-a13e-24bb85872402\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/039134d3-4703-4681-a13e-24bb85872402\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"1992c01a-e56e-4d94-b705-cd68984de0a6","meta":{"alt":null,"title":null,"width":440,"height":440,"drupal_internal__target_id":65074}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/039134d3-4703-4681-a13e-24bb85872402\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/039134d3-4703-4681-a13e-24bb85872402\/relationships\/user_picture"}}}}},{"type":"user--user","id":"b1ae8858-7741-422f-a770-06e48e776054","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/b1ae8858-7741-422f-a770-06e48e776054"}},"attributes":{"display_name":"pillarsdotnet","drupal_internal__uid":36148,"name":"pillarsdotnet","drupalorg_id":null,"field_country":"US","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Robert","field_git_username":"pillarsdotnet","field_industries_worked_in":["Internet Service"],"field_last_name":"Vincent","field_user_location":null,"field_user_picture":null,"field_user_pronouns":"he\/him"},"relationships":{"field_mentors":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/b1ae8858-7741-422f-a770-06e48e776054\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/b1ae8858-7741-422f-a770-06e48e776054\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"bd318a1c-1c89-4be9-94a5-b5d601532169","meta":{"alt":null,"title":null,"width":580,"height":628,"drupal_internal__target_id":9574}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/b1ae8858-7741-422f-a770-06e48e776054\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/b1ae8858-7741-422f-a770-06e48e776054\/relationships\/user_picture"}}}}},{"type":"user--user","id":"a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca"}},"attributes":{"display_name":"googletorp","drupal_internal__uid":386230,"name":"googletorp","drupalorg_id":null,"field_country":"DK","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Jakob","field_git_username":"googletorp","field_industries_worked_in":[],"field_last_name":"Larsen","field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[{"type":"user--user","id":"cd41de5c-3699-44c3-a68d-0d90b6d564c5","meta":{"drupal_internal__target_id":58679}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"79b0d5b3-f9ec-468e-97c3-47143e72dc94","meta":{"alt":null,"title":null,"width":214,"height":224,"drupal_internal__target_id":77738}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a24fa9e6-3d3e-4fd8-ac93-777183ecb2ca\/relationships\/user_picture"}}}}},{"type":"user--user","id":"ebd9c743-897d-4c43-aaf8-b9e1acfe8e26","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ebd9c743-897d-4c43-aaf8-b9e1acfe8e26"}},"attributes":{"display_name":"itmaybejj","drupal_internal__uid":1177504,"name":"itmaybejj","drupalorg_id":null,"field_country":"US","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"John","field_git_username":"itmaybejj","field_industries_worked_in":[],"field_last_name":"Jameson","field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[{"type":"user--user","id":"d6052c61-dbd3-4f7b-90b6-d96142308e98","meta":{"drupal_internal__target_id":788032}},{"type":"user--user","id":"c3086ad8-5009-4918-a187-8a6f05898a11","meta":{"drupal_internal__target_id":566352}},{"type":"user--user","id":"54f81a09-1528-47a0-adbd-55bf0c336f7b","meta":{"drupal_internal__target_id":1030276}},{"type":"user--user","id":"a7f46e31-040f-407b-9157-3f8cdde267d2","meta":{"drupal_internal__target_id":1171846}},{"type":"user--user","id":"b8759284-928b-454f-a6f4-c651833df119","meta":{"drupal_internal__target_id":608688}},{"type":"user--user","id":"6561fcbb-22e0-44c2-bd65-7c6d4260ee4b","meta":{"drupal_internal__target_id":1128182}},{"type":"user--user","id":"7dc3f843-df17-479c-a410-d67939260345","meta":{"drupal_internal__target_id":49851}},{"type":"user--user","id":"292df876-a39c-413e-818e-ed1836bc5ac1","meta":{"drupal_internal__target_id":325798}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ebd9c743-897d-4c43-aaf8-b9e1acfe8e26\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ebd9c743-897d-4c43-aaf8-b9e1acfe8e26\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"7b57a1cb-8bc5-4934-9cc1-64e155a7cf1d","meta":{"alt":null,"title":null,"width":627,"height":627,"drupal_internal__target_id":102595}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ebd9c743-897d-4c43-aaf8-b9e1acfe8e26\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ebd9c743-897d-4c43-aaf8-b9e1acfe8e26\/relationships\/user_picture"}}}}},{"type":"user--user","id":"a2524084-7d93-463f-af4a-507077045868","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a2524084-7d93-463f-af4a-507077045868"}},"attributes":{"display_name":"jfeltkamp","drupal_internal__uid":2471686,"name":"jfeltkamp","drupalorg_id":null,"field_country":"DE","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Joachim","field_git_username":"JFeltkamp","field_industries_worked_in":["Internet Solutions"],"field_last_name":"Feltkamp","field_user_location":"Hamburg","field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[{"type":"user--user","id":"0d1a9dc1-7aa6-40ab-9130-0dd7f12d4c5d","meta":{"drupal_internal__target_id":103809}},{"type":"user--user","id":"9841f43b-2860-4421-b861-930002697dc1","meta":{"drupal_internal__target_id":107158}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a2524084-7d93-463f-af4a-507077045868\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a2524084-7d93-463f-af4a-507077045868\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"d855459c-6a35-445b-9ec0-217cd5e47572","meta":{"alt":null,"title":null,"width":768,"height":1024,"drupal_internal__target_id":87480}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a2524084-7d93-463f-af4a-507077045868\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/a2524084-7d93-463f-af4a-507077045868\/relationships\/user_picture"}}}}},{"type":"user--user","id":"ec8d23c8-6b5d-4048-8002-34ca77d57b3a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ec8d23c8-6b5d-4048-8002-34ca77d57b3a"}},"attributes":{"display_name":"tr","drupal_internal__uid":202830,"name":"tr","drupalorg_id":null,"field_country":"US","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Tim","field_git_username":"tr","field_industries_worked_in":[],"field_last_name":"Rohaly","field_user_location":"Cascadia","field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ec8d23c8-6b5d-4048-8002-34ca77d57b3a\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ec8d23c8-6b5d-4048-8002-34ca77d57b3a\/relationships\/field_mentors"}}},"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ec8d23c8-6b5d-4048-8002-34ca77d57b3a\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/ec8d23c8-6b5d-4048-8002-34ca77d57b3a\/relationships\/user_picture"}}}}},{"type":"user--user","id":"e8a182f9-9f1d-4273-9720-93a6d64fc697","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/e8a182f9-9f1d-4273-9720-93a6d64fc697"}},"attributes":{"display_name":"ahana92","drupal_internal__uid":3494063,"name":"ahana92","drupalorg_id":null,"field_country":"IN","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Ahana","field_git_username":"ahana92","field_industries_worked_in":[],"field_last_name":"Kundu","field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/e8a182f9-9f1d-4273-9720-93a6d64fc697\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/e8a182f9-9f1d-4273-9720-93a6d64fc697\/relationships\/field_mentors"}}},"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/e8a182f9-9f1d-4273-9720-93a6d64fc697\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/e8a182f9-9f1d-4273-9720-93a6d64fc697\/relationships\/user_picture"}}}}},{"type":"user--user","id":"cbf4fb70-5934-42b7-a33b-48dcc851c99b","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/cbf4fb70-5934-42b7-a33b-48dcc851c99b"}},"attributes":{"display_name":"guy_schneerson","drupal_internal__uid":755184,"name":"guy_schneerson","drupalorg_id":null,"field_country":"GB","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":"Guy","field_git_username":"guy_schneerson","field_industries_worked_in":["private sector","public sector","Web development","Retail","Biodiversity Conservation","System architecture","database design"],"field_last_name":"Schneerson","field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[{"type":"user--user","id":"794e540f-11e5-4c44-9e0c-b473e4232c0e","meta":{"drupal_internal__target_id":30906}},{"type":"user--user","id":"75a1b3c2-9cc1-45a6-9ccc-bbe78b8a52c3","meta":{"drupal_internal__target_id":49344}},{"type":"user--user","id":"4d0c6c58-ad97-4d56-9763-10bb46dd9214","meta":{"drupal_internal__target_id":750068}}],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/cbf4fb70-5934-42b7-a33b-48dcc851c99b\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/cbf4fb70-5934-42b7-a33b-48dcc851c99b\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"756ef865-072a-4914-834f-45fd5e1de3e3","meta":{"alt":null,"title":null,"width":428,"height":364,"drupal_internal__target_id":77748}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/cbf4fb70-5934-42b7-a33b-48dcc851c99b\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/cbf4fb70-5934-42b7-a33b-48dcc851c99b\/relationships\/user_picture"}}}}},{"type":"user--user","id":"6e717507-c7fd-4d60-96db-688a25ad4b95","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/6e717507-c7fd-4d60-96db-688a25ad4b95"}},"attributes":{"display_name":"maciej.zgadzaj","drupal_internal__uid":271491,"name":"maciej.zgadzaj","drupalorg_id":null,"field_country":"FR","field_crosssite_first_name":null,"field_crosssite_last_name":null,"field_first_name":null,"field_git_username":"maciej.zgadzaj","field_industries_worked_in":[],"field_last_name":null,"field_user_location":null,"field_user_picture":null,"field_user_pronouns":null},"relationships":{"field_mentors":{"data":[],"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/6e717507-c7fd-4d60-96db-688a25ad4b95\/field_mentors"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/6e717507-c7fd-4d60-96db-688a25ad4b95\/relationships\/field_mentors"}}},"user_picture":{"data":{"type":"file--file","id":"30397641-92fd-47f0-ae54-04882ee709f0","meta":{"alt":null,"title":null,"width":180,"height":180,"drupal_internal__target_id":66098}},"links":{"related":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/6e717507-c7fd-4d60-96db-688a25ad4b95\/user_picture"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/user\/user\/6e717507-c7fd-4d60-96db-688a25ad4b95\/relationships\/user_picture"}}}}},{"type":"file--file","id":"6c2cdb38-58d3-43ac-9bb8-8910b4efbc61","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/6c2cdb38-58d3-43ac-9bb8-8910b4efbc61"}},"attributes":{"uri":{"value":"public:\/\/project-images\/centarro_logo_0.png","url":"\/assets\/project-images\/centarro_logo_0.png"}}},{"type":"file--file","id":"694d7a3d-d89a-4c81-87fe-faf431516672","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/694d7a3d-d89a-4c81-87fe-faf431516672"}},"attributes":{"uri":{"value":"public:\/\/images\/fivestar-settings.png","url":"\/assets\/images\/fivestar-settings.png"}}},{"type":"file--file","id":"552b35c8-44da-4d27-9928-82ef88ed4412","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/552b35c8-44da-4d27-9928-82ef88ed4412"}},"attributes":{"uri":{"value":"public:\/\/images\/example_0.png","url":"\/assets\/images\/example_0.png"}}},{"type":"file--file","id":"02ee2895-127b-4aa3-8c05-f120c585da46","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/02ee2895-127b-4aa3-8c05-f120c585da46"}},"attributes":{"uri":{"value":"public:\/\/project-images\/Screen Shot 2023-02-08 at 9.48.38 AM.png","url":"\/assets\/project-images\/Screen%20Shot%202023-02-08%20at%209.48.38%20AM.png"}}},{"type":"file--file","id":"23da7a06-75a1-4ad7-92d3-d6ce014ef22a","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/23da7a06-75a1-4ad7-92d3-d6ce014ef22a"}},"attributes":{"uri":{"value":"public:\/\/project-images\/cookies_logo.png","url":"\/assets\/project-images\/cookies_logo.png"}}},{"type":"file--file","id":"0ecd59e5-294c-4e43-b6bc-7478ff7504eb","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/0ecd59e5-294c-4e43-b6bc-7478ff7504eb"}},"attributes":{"uri":{"value":"public:\/\/project-images\/cookies_layer_3.png","url":"\/assets\/project-images\/cookies_layer_3.png"}}},{"type":"file--file","id":"db94321e-b46f-4314-9162-af10ef79915d","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/db94321e-b46f-4314-9162-af10ef79915d"}},"attributes":{"uri":{"value":"public:\/\/project-images\/cookies_banner_2.png","url":"\/assets\/project-images\/cookies_banner_2.png"}}},{"type":"file--file","id":"74f8a604-637d-44e5-be91-dd386e14efb2","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/74f8a604-637d-44e5-be91-dd386e14efb2"}},"attributes":{"uri":{"value":"public:\/\/project-images\/cookies_config.png","url":"\/assets\/project-images\/cookies_config.png"}}},{"type":"file--file","id":"1f64f823-017c-4b86-98a1-61c8e8b02b32","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/1f64f823-017c-4b86-98a1-61c8e8b02b32"}},"attributes":{"uri":{"value":"public:\/\/project-images\/logo_6.png","url":"\/assets\/project-images\/logo_6.png"}}},{"type":"file--file","id":"9c7f71be-932f-4f85-a060-e88b28c638b0","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/9c7f71be-932f-4f85-a060-e88b28c638b0"}},"attributes":{"uri":{"value":"public:\/\/project-images\/PayPal-payment-buttons.png","url":"\/assets\/project-images\/PayPal-payment-buttons.png"}}},{"type":"file--file","id":"03315b7d-1050-4e55-9447-0ea166a500c3","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/03315b7d-1050-4e55-9447-0ea166a500c3"}},"attributes":{"uri":{"value":"public:\/\/project-images\/Screenshot from 2020-08-26 18-06-53.png","url":"\/assets\/project-images\/Screenshot%20from%202020-08-26%2018-06-53.png"}}},{"type":"file--file","id":"b713ecbe-9331-4ac5-a08e-2c31f5cb255b","links":{"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/file\/file\/b713ecbe-9331-4ac5-a08e-2c31f5cb255b"}},"attributes":{"uri":{"value":"public:\/\/project-images\/Screenshot from 2020-08-26 18-06-38.png","url":"\/assets\/project-images\/Screenshot%20from%202020-08-26%2018-06-38.png"}}}],"meta":{"count":3457},"links":{"last":{"href":"https:\/\/www.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=3456\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"next":{"href":"https:\/\/www.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=12\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"self":{"href":"https:\/\/www.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B0%5D=3df293b3-c9a1-4232-962b-3c8169e8e6e3\u0026filter%5Bmodule_categories_uuid%5D%5Bvalue%5D%5B1%5D=0cd80c8e-5c20-43a8-aa3e-ec701007d443\u0026filter%5Bmodule_categories_uuid%5D%5Boperator%5D=IN\u0026filter%5Bmodule_categories_uuid%5D%5Bpath%5D=module_categories_uuid\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images\u0026page%5Blimit%5D=12\u0026page%5Boffset%5D=0"}}}