Drupal Commerce https://michalak.world/tag/drupal-commerce en PDF Generation in Drupal https://michalak.world/article/pdf-generation-drupal <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">PDF Generation in Drupal</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-08-21T19:52:30+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 08/21/2019 - 14:52</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img property="schema:image" src="/sites/default/files/2019-08/pdf-generate_0.jpg" width="3888" height="2592" alt="pdf generation" title="PDF Generate" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>It is nice when a user can click a button and generate a PDF. Over the last few months, I have added PDF generation to many projects. Examples of PDF generation include order invoices, sell sheets, webform submission results, and general node to PDF generation. </p> <p>When tasked at generating PDFs, I have been applying the <a href="https://github.com/dompdf/dompdf">dompdf</a><a href="https://github.com/dompdf/dompdf"> library</a>. The dompdf library implements the most versatility by using HTML and CSS to generate PDFs.  Therefore, giving the most flexibility for custom theming.  </p> <h2><strong>Example 1</strong></h2> <p>The most recent PDF generation task I completed was for Drupal commerce order invoices.  I leveraged twig templates to provide as much flexibility as possible, which allowed me to incorporate a special entity view mode and for additional block regions.  The new entity view display allows website admins to add, remove or rearrange order fields, and the additional block regions allowed for adding additional blocks throughout the template.  The flexibility of the Drupal interface not only provides a way for website admins to generate order invoices but also allows them to modify the layouts of the PDF invoice.</p> <h2><strong>Example 2</strong></h2> <p>In a past Drupal 8 commerce project, I have also automated the process to generate picket tickets upon orders reaching a specific state in the commerce order workflow. </p> <p>The dompdf library has been enjoyable and straightforward to use and I intend to use this library for future PDF generation projects.</p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=77&amp;2=comment&amp;3=comment" token="Qzb37j7VqLlKUKgiGSHsGIdM5xh3GhwoL_4P668Docs"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/drupal"><div about="/tag/drupal" typeof="schema:Thing" id="taxonomy-term-2" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal</div> </a></h2> <span property="schema:name" content="Drupal" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-7"><div about="/tag/drupal-7" typeof="schema:Thing" id="taxonomy-term-12" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-7"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 7</div> </a></h2> <span property="schema:name" content="Drupal 7" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-performance"><div about="/tag/drupal-performance" typeof="schema:Thing" id="taxonomy-term-18" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-performance"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Performance</div> </a></h2> <span property="schema:name" content="Drupal Performance" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Wed, 21 Aug 2019 19:52:30 +0000 useradmin 77 at https://michalak.world Pantheon - Cloning a Project https://michalak.world/article/pantheon-cloning-project <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Pantheon - Cloning a Project</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-08-07T17:54:57+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 08/07/2019 - 12:54</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img src="/sites/default/files/default_images/michalak-dcd.png" width="2600" height="1600" alt="Michalak Drupal Commerce Developer" title="Michalak Drupal Commerce Developer" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>If you need to clone a project within the Pantheon ecosystem Terminus is a great tool to use.</p> <p>First, <a href="https://pantheon.io/docs/terminus/install">install Terminus</a> and then add the <a href="https://github.com/pantheon-systems/terminus-site-clone-plugin">site clone plugin</a>.</p> <p>After authenticating with terminus use the site:clone command</p> <pre> terminus site:clone &lt;source&gt;.&lt;env&gt; &lt;destination&gt;.&lt;env&gt;</pre> <p>&lt;source&gt; and &lt;destination&gt; are either the site names or the site UUIDs.  &lt;env&gt; is the environment, e.g. dev, test, prod or multi dev.</p> <p><strong>Resources</strong></p> <ul><li>I<a href="https://pantheon.io/docs/terminus/install">nstall Terminus</a></li> <li><a href="https://github.com/pantheon-systems/terminus-site-clone-plugin">Terminus's Site Clone Plugin</a></li> <li><a href="https://pantheon.io/docs/terminus">Terminus Documentation</a></li> <li><a href="https://pantheon.io/docs/migrate">Pantheon Migration Documentation</a></li> </ul><p> </p> </div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=76&amp;2=comment&amp;3=comment" token="sJ_UIyQ90zvYFCIevMbx_95Z7pdNofcckWbJLUB-ZJY"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/api"><div about="/tag/api" typeof="schema:Thing" id="taxonomy-term-22" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/api"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">API</div> </a></h2> <span property="schema:name" content="API" class="rdf-meta hidden"></span> <div class="content"> <div property="schema:description" class="clearfix text-formatted field field--name-description field--type-text-long field--label-hidden field__item"><p>API</p></div> </div> </div> </li> <li property="schema:about" resource="/tag/drupal"><div about="/tag/drupal" typeof="schema:Thing" id="taxonomy-term-2" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal</div> </a></h2> <span property="schema:name" content="Drupal" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-7"><div about="/tag/drupal-7" typeof="schema:Thing" id="taxonomy-term-12" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-7"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 7</div> </a></h2> <span property="schema:name" content="Drupal 7" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/update"><div about="/tag/update" typeof="schema:Thing" id="taxonomy-term-10" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/update"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Update</div> </a></h2> <span property="schema:name" content="Update" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Wed, 07 Aug 2019 17:54:57 +0000 useradmin 76 at https://michalak.world https://michalak.world/article/pantheon-cloning-project#comments Drupal 8 Commerce Tax Resolvers https://michalak.world/article/drupal-8-commerce-tax <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Drupal 8 Commerce Tax Resolvers</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-07-31T10:54:45+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 07/31/2019 - 05:54</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img property="schema:image" src="/sites/default/files/2019-07/tax_0.jpg" width="5637" height="3758" alt="Tax" title="Tax" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>In Drupal 7 it was easy to create new tax configurations using rules.  Now in Drupal 8, it is a little bit more complicated but even more flexible. At the moment there isn't a GUI to configure taxes past setting up a simple Sales or VAT per location.   That is where Drupal 8 commerce tax resolvers come in.</p> <p>Drupal Commerce's tax resolvers make it easy for setting up custom tax rules based upon your criteria. Recently I set up two new types of tax resolvers.  The new tax resolvers allow for a user to be tax-exempt and also taxed based upon the cost of each line item.</p> <h2><strong>Tax-Exempt</strong></h2> <p>The tax-exempt tax resolver I implemented basically allows an authenticated user bypass taxes.  This was done with a setting up a special type of role and allows the admin to grant tax exemptions to users.  Once the role is setup then the tax resolver takes over at checkout. </p> <h2><strong>Line Item Tax</strong></h2> <p>The line item tax resolver was needed to provide a tax on line items after a certain amount threshold was met for that line item.  E.g. if a user was purchasing $90 a line item they would not be taxed but if they spent $100 or more then tax would need to be applied to that line item.    </p> <p>Each custom tax resolver is currency independent and can be applied to either sales tax or VAT tax if needed.  Both of these are simple implementations and can be expanded upon in the future.  </p> <p>Thanks for reading!  Let me know if you have any questions.  Please leave a comment below!</p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=74&amp;2=comment&amp;3=comment" token="k2nAa9zPaZJ1YXSx-274dYF8rYf7l1SyAeJZIsk5bGc"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/commerce-tax"><div about="/tag/commerce-tax" typeof="schema:Thing" id="taxonomy-term-23" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/commerce-tax"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Commerce Tax</div> </a></h2> <span property="schema:name" content="Commerce Tax" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Wed, 31 Jul 2019 10:54:45 +0000 useradmin 74 at https://michalak.world Drupal 8 Commerce Promotions - Buy X or more of the same product and get % off that order item https://michalak.world/article/drupal-8-commerce-promotions-buy-x-or-more-same-product-and-get-order-item <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Drupal 8 Commerce Promotions - Buy X or more of the same product and get % off that order item</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-07-31T10:21:21+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 07/31/2019 - 05:21</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img property="schema:image" src="/sites/default/files/2019-07/promotions.jpg" width="4053" height="2697" alt="Drupal coupon Drupal promotions" title="Girl with phone and coupon" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>Currently "Buy X and Get Y" discount is only related to the whole order and not at the order item level. </p> <p>I needed order item level discounts. e.g. buy 10 or more of the same product and get 10% off that order item. </p> <p>The new promotion will only discount at the order item level for order items with a quantity of 10 or more.</p> <p>Example - Buy 10 or more and get a 10% discount.<br /> Order Item 1 - Quantity of 5 - No Discount<br /> Order Item 2 - Quantity of 11 - 10% off discount<br /> Order item 3 - Quantity of 10 - 10% off discount<br /> Order Item 4 - Quantity of 1 - No Discount</p> <p>I have created a patch for this type of discount. The discount is labeled: "Buy X per order item get a percentage off." The new promotion only allows only for a percentage off discount and does not include a fixed amount discount. </p> <p>Drupal Commerce Issue Queue: https://www.drupal.org/project/commerce/issues/3066724</p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=73&amp;2=comment&amp;3=comment" token="7FycrUQswYBd0O_Ooie4CmmRDBiCYg9EsoCa7NQwC44"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/commerce-promo"><div about="/tag/commerce-promo" typeof="schema:Thing" id="taxonomy-term-24" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/commerce-promo"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Commerce Promo</div> </a></h2> <span property="schema:name" content="Commerce Promo" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Wed, 31 Jul 2019 10:21:21 +0000 useradmin 73 at https://michalak.world Drupal 8 Commerce - Setting a Default Currency on Product Variations https://michalak.world/article/drupal-8-commerce-setting-default-currency-product-variations <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Drupal 8 Commerce - Setting a Default Currency on Product Variations</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-05-08T11:13:50+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 05/08/2019 - 06:13</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img src="/sites/default/files/default_images/michalak-dcd.png" width="2600" height="1600" alt="Michalak Drupal Commerce Developer" title="Michalak Drupal Commerce Developer" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>By default Drupal 8 commerce 2.x product variations do not have a default currency setting for multi-currency projects.  </p> <p>Currently, there is a patch in the works to solve this issue.  The patch can be found in the commerce issue queue: <a href="https://www.drupal.org/project/commerce/issues/3016777">https://www.drupal.org/project/commerce/issues/3016777</a></p> <p>Thank you a.dmitriiev for creating a patch to solve this issue!</p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=71&amp;2=comment&amp;3=comment" token="G5ShwSxymiQjhwboVPPPD3c_EjNM6JxcEGuGL63s568"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/drupal"><div about="/tag/drupal" typeof="schema:Thing" id="taxonomy-term-2" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal</div> </a></h2> <span property="schema:name" content="Drupal" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Wed, 08 May 2019 11:13:50 +0000 useradmin 71 at https://michalak.world Drupal: Pantheon Cookies https://michalak.world/article/drupal-pantheon-cookies <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Drupal: Pantheon Cookies</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-05-03T13:11:38+00:00" class="field field--name-created field--type-created field--label-hidden">Fri, 05/03/2019 - 08:11</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img src="/sites/default/files/default_images/michalak-dcd.png" width="2600" height="1600" alt="Michalak Drupal Commerce Developer" title="Michalak Drupal Commerce Developer" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><p>I've been using the commerce_currency_resolver module and it has been fantastic to use.   One issue I ran into was with how the cookies are handled on Pantheon.</p> <p>When using custom cookies a special naming convention must be used.  The cookie's name must start with <em><code>STYXKEY.</code></em></p> <p>Per Pantheon: </p> <blockquote> <p>Respond to a request with cached content depending on the presence and value of a particular cookie. It's important to note that in order for the response to be cached by Pantheon's edge, the cookie name must match <code>STYXKEY[a-zA-Z0-9_-]+</code>.</p> </blockquote> <p>Pantheon Documentation: <a href="https://pantheon.io/docs/cookies/">https://pantheon.io/docs/cookies/</a></p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=70&amp;2=comment&amp;3=comment" token="lVr2me8sBkS-nqUIwncjF3mVjqLfFPdES9CWk_dZWLs"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/drupal"><div about="/tag/drupal" typeof="schema:Thing" id="taxonomy-term-2" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal</div> </a></h2> <span property="schema:name" content="Drupal" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-7"><div about="/tag/drupal-7" typeof="schema:Thing" id="taxonomy-term-12" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-7"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 7</div> </a></h2> <span property="schema:name" content="Drupal 7" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-performance"><div about="/tag/drupal-performance" typeof="schema:Thing" id="taxonomy-term-18" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-performance"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Performance</div> </a></h2> <span property="schema:name" content="Drupal Performance" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Fri, 03 May 2019 13:11:38 +0000 useradmin 70 at https://michalak.world Drupal 8 Configuration Synchronization https://michalak.world/article/drupal-8-configuration-synchronization <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Drupal 8 Configuration Synchronization </span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span property="schema:dateCreated" content="2019-04-29T12:20:19+00:00" class="field field--name-created field--type-created field--label-hidden">Mon, 04/29/2019 - 07:20</span> <div class="field field--name-field-image field--type-image field--label-above"> <div class="field__label">Image</div> <div class="field__item"> <img src="/sites/default/files/default_images/michalak-dcd.png" width="2600" height="1600" alt="Michalak Drupal Commerce Developer" title="Michalak Drupal Commerce Developer" typeof="foaf:Image" /> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-above"> <div class="field__label">Body</div> <div property="schema:text" class="field__item"><h2>Configuration Synchronization</h2> <p>Drupal 8 has a really great configuration synchronization system, and is great for syncing up different environments.  When creating new modules and adding new fuctionality I really enjoy working with Drupal 8's configuration synchronization tool.  Not only does this tool take the guesswork out of updates that need to be made on other environments.  The configuration synchronization also allows for all changes to be documented.  </p> <h2>New Modules and New Functionality</h2> <p>The Drupal 8 content synchronization tool paired with Drupal 8's update hooks are great ways to make all of the new changes portable and documented.  I have adopted this methodology when moving out changes from environment to environment.  Pairing this methodology with a deployment guide and taking out all of the guesswork of what needs to be updated.</p> <h2>Uses for Configuration Synchronization </h2> <p>Types of changes that Drupal 8's configuration synchronization tool are good for: </p> <ul><li>Block Configuration</li> <li>New Content Types</li> <li>Updating Content Types</li> <li>Adding New Fields to Entities</li> <li>Adding or Updating Views</li> <li>Etc.</li> </ul><h2>Conclusion</h2> <p>But I also have a love-hate relationship.  When an installation of a modules gets conflicted with the synchronization then there are headaches, but overall the configuration synchronization is really great.  Once they are worked through then all the headaches are eliminated, usually, just need to rework the install() and uninstall() hooks for the module.</p></div> </div> <section rel="schema:comment" class="field field--name-comment field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=69&amp;2=comment&amp;3=comment" token="IQxni0p78o9ZSEWkihFEC7fFRbIcXcDos4BQLuUqJuM"></drupal-render-placeholder> </section> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li property="schema:about" resource="/tag/api"><div about="/tag/api" typeof="schema:Thing" id="taxonomy-term-22" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/api"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">API</div> </a></h2> <span property="schema:name" content="API" class="rdf-meta hidden"></span> <div class="content"> <div property="schema:description" class="clearfix text-formatted field field--name-description field--type-text-long field--label-hidden field__item"><p>API</p></div> </div> </div> </li> <li property="schema:about" resource="/tag/composer"><div about="/tag/composer" typeof="schema:Thing" id="taxonomy-term-15" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/composer"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Composer</div> </a></h2> <span property="schema:name" content="Composer" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal"><div about="/tag/drupal" typeof="schema:Thing" id="taxonomy-term-2" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal</div> </a></h2> <span property="schema:name" content="Drupal" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-8"><div about="/tag/drupal-8" typeof="schema:Thing" id="taxonomy-term-11" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-8"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal 8</div> </a></h2> <span property="schema:name" content="Drupal 8" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-commerce"><div about="/tag/drupal-commerce" typeof="schema:Thing" id="taxonomy-term-4" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-commerce"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Commerce</div> </a></h2> <span property="schema:name" content="Drupal Commerce" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/drupal-development"><div about="/tag/drupal-development" typeof="schema:Thing" id="taxonomy-term-3" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/drupal-development"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Drupal Development</div> </a></h2> <span property="schema:name" content="Drupal Development" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> <li property="schema:about" resource="/tag/update"><div about="/tag/update" typeof="schema:Thing" id="taxonomy-term-10" class="taxonomy-term vocabulary-tags"> <h2><a href="/tag/update"> <div property="schema:name" class="field field--name-name field--type-string field--label-hidden field__item">Update</div> </a></h2> <span property="schema:name" content="Update" class="rdf-meta hidden"></span> <div class="content"> </div> </div> </li> </ul> </div> Mon, 29 Apr 2019 12:20:19 +0000 useradmin 69 at https://michalak.world https://michalak.world/article/drupal-8-configuration-synchronization#comments Drupal Backend Developer for Hire https://michalak.world/video/drupal-backend-developer-hire <span class="field field--name-title field--type-string field--label-hidden">Drupal Backend Developer for Hire</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 04/23/2019 - 09:45</span> <div class="field field--name-field-video field--type-video-embed-field field--label-hidden field__item"><div data-video-embed-field-lazy="&lt;div class=&quot;video-embed-field-provider-youtube video-embed-field-responsive-video&quot;&gt;&lt;iframe width=&quot;854&quot; height=&quot;480&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot; src=&quot;https://www.youtube.com/embed/n9vCLvp8cds?autoplay=0&amp;amp;start=0&amp;amp;rel=0&quot;&gt;&lt;/iframe&gt; &lt;/div&gt; " class="video-embed-field-lazy"><a href="/video/drupal-backend-developer-hire" hreflang="en"><img src="/sites/default/files/video_thumbnails/n9vCLvp8cds.jpg" alt="" typeof="foaf:Image" /> </a><button class="video-embed-field-lazy-play"></button> </div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li><a href="/tag/commerce-shipping" hreflang="en">Commerce Shipping</a></li> <li><a href="/tag/drupal" hreflang="en">Drupal</a></li> <li><a href="/tag/drupal-7" hreflang="en">Drupal 7</a></li> <li><a href="/tag/drupal-8" hreflang="en">Drupal 8</a></li> <li><a href="/tag/drupal-commerce" hreflang="en">Drupal Commerce</a></li> <li><a href="/tag/drupal-development" hreflang="en">Drupal Development</a></li> <li><a href="/tag/drupal-performance" hreflang="en">Drupal Performance</a></li> <li><a href="/tag/payment-gateway" hreflang="en">Payment Gateway</a></li> <li><a href="/tag/purchase-orders" hreflang="en">Purchase Orders</a></li> <li><a href="/tag/rest-api" hreflang="en">REST API</a></li> <li><a href="/tag/security" hreflang="en">Security</a></li> <li><a href="/tag/update" hreflang="en">Update</a></li> <li><a href="/tag/warehouse-mangement" hreflang="en">Warehouse Mangement</a></li> </ul> </div> Tue, 23 Apr 2019 14:45:59 +0000 useradmin 68 at https://michalak.world Drupal Development https://michalak.world/video/drupal-development <span class="field field--name-title field--type-string field--label-hidden">Drupal Development</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 04/21/2019 - 15:49</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>I am a Drupal developer specializing in Backend Drupal Development and Drupal Commerce Development.</p></div> <div class="field field--name-field-video field--type-video-embed-field field--label-hidden field__item"><div data-video-embed-field-lazy="&lt;div class=&quot;video-embed-field-provider-youtube video-embed-field-responsive-video&quot;&gt;&lt;iframe width=&quot;854&quot; height=&quot;480&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot; src=&quot;https://www.youtube.com/embed/tEojZwF0LBo?autoplay=0&amp;amp;start=0&amp;amp;rel=0&quot;&gt;&lt;/iframe&gt; &lt;/div&gt; " class="video-embed-field-lazy"><a href="/video/drupal-development" hreflang="en"><img src="/sites/default/files/video_thumbnails/tEojZwF0LBo.jpg" alt="" typeof="foaf:Image" /> </a><button class="video-embed-field-lazy-play"></button> </div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li><a href="/tag/api" hreflang="en">API</a></li> <li><a href="/tag/commerce-shipping" hreflang="en">Commerce Shipping</a></li> <li><a href="/tag/composer" hreflang="en">Composer</a></li> <li><a href="/tag/drupal" hreflang="en">Drupal</a></li> <li><a href="/tag/drupal-7" hreflang="en">Drupal 7</a></li> <li><a href="/tag/drupal-8" hreflang="en">Drupal 8</a></li> <li><a href="/tag/drupal-commerce" hreflang="en">Drupal Commerce</a></li> <li><a href="/tag/drupal-development" hreflang="en">Drupal Development</a></li> <li><a href="/tag/drupal-performance" hreflang="en">Drupal Performance</a></li> <li><a href="/tag/form-api" hreflang="en">Form API</a></li> <li><a href="/tag/integration" hreflang="en">Integration</a></li> <li><a href="/tag/payment-gateway" hreflang="en">Payment Gateway</a></li> <li><a href="/tag/purchase-orders" hreflang="en">Purchase Orders</a></li> <li><a href="/tag/rest-api" hreflang="en">REST API</a></li> <li><a href="/tag/security" hreflang="en">Security</a></li> <li><a href="/tag/update" hreflang="en">Update</a></li> <li><a href="/tag/video" hreflang="en">Video</a></li> <li><a href="/tag/warehouse-mangement" hreflang="en">Warehouse Mangement</a></li> </ul> </div> Sun, 21 Apr 2019 20:49:23 +0000 useradmin 67 at https://michalak.world Helping you with your Drupal Optimizations https://michalak.world/video/helping-you-your-drupal-optimizations <span class="field field--name-title field--type-string field--label-hidden">Helping you with your Drupal Optimizations</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">useradmin</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 04/21/2019 - 15:47</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>I am a Drupal Developer and have many years of experience in developing and optimizing the whole stack.</p></div> <div class="field field--name-field-video field--type-video-embed-field field--label-hidden field__item"><div data-video-embed-field-lazy="&lt;div class=&quot;video-embed-field-provider-youtube video-embed-field-responsive-video&quot;&gt;&lt;iframe width=&quot;854&quot; height=&quot;480&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;allowfullscreen&quot; src=&quot;https://www.youtube.com/embed/A3arezmmOBA?autoplay=0&amp;amp;start=0&amp;amp;rel=0&quot;&gt;&lt;/iframe&gt; &lt;/div&gt; " class="video-embed-field-lazy"><a href="/video/helping-you-your-drupal-optimizations" hreflang="en"><img src="/sites/default/files/video_thumbnails/A3arezmmOBA.jpg" alt="" typeof="foaf:Image" /> </a><button class="video-embed-field-lazy-play"></button> </div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above clearfix"> <h3 class="field__label">Tags</h3> <ul class="links field__items"> <li><a href="/tag/api" hreflang="en">API</a></li> <li><a href="/tag/drupal" hreflang="en">Drupal</a></li> <li><a href="/tag/drupal-7" hreflang="en">Drupal 7</a></li> <li><a href="/tag/drupal-8" hreflang="en">Drupal 8</a></li> <li><a href="/tag/drupal-commerce" hreflang="en">Drupal Commerce</a></li> <li><a href="/tag/drupal-development" hreflang="en">Drupal Development</a></li> <li><a href="/tag/drupal-performance" hreflang="en">Drupal Performance</a></li> <li><a href="/tag/security" hreflang="en">Security</a></li> <li><a href="/tag/update" hreflang="en">Update</a></li> <li><a href="/tag/video" hreflang="en">Video</a></li> </ul> </div> Sun, 21 Apr 2019 20:47:02 +0000 useradmin 66 at https://michalak.world