{"id":30393,"date":"2023-07-11T07:00:00","date_gmt":"2023-07-11T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=30393"},"modified":"2025-11-27T11:37:48","modified_gmt":"2025-11-27T19:37:48","slug":"automatically-and-programmatically-update-assets-metadata","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata","title":{"rendered":"How to Automatically and Programmatically Update Assets Based on Metadata"},"content":{"rendered":"\n<p>Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to update everything else.<br><br>Cloudinary makes this process a whole lot easier. Instead of manually create a new version of a product image when pricing, availability, dates, quantity, or anything else changes, you can just reference your asset&#8217;s metadata for the text overlays in your on-the-fly transformation, and the changes happen automatically.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271557\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-1.png\" alt=\"Image of shoes with product description on the top left and price on the top right\" style=\"width:400px\"\/><\/figure><\/div>\n\n\n<p>Reference the asset&#8217;s <a href=\"https:\/\/cloudinary.com\/documentation\/dam_admin_structured_metadata\" target=\"_blank\" rel=\"noreferrer noopener\">structured metadata<\/a> field in your transformation via the standard <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference\" target=\"_blank\" rel=\"noreferrer noopener\">URL transformation API<\/a> or via one of Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_sdks\" target=\"_blank\" rel=\"noreferrer noopener\">SDK<\/a> helper functions by utilizing <a href=\"https:\/\/cloudinary.com\/documentation\/user_defined_variables\" target=\"_blank\" rel=\"noreferrer noopener\">user-defined variables<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Add Metadata to Delivery URLs<\/h2>\n\n\n\n<p>Want to reference an asset\u2019s structured metadata in your transformation and add text layers? Here\u2019s a breakdown:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271563\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-2.png\" alt=\"Image of shoes on a white background\" style=\"width:400px\"\/><\/figure><\/div>\n\n\n<p>1. Create a few structured metadata fields. You can create, update, and delete these either via the UI or the <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api\" target=\"_blank\" rel=\"noreferrer noopener\">Metadata API<\/a>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271567\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-3.png\" alt=\"Media Library\" style=\"width:600px\"\/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271570\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-4.png\" alt=\"Create a new field\" style=\"width:400px\"\/><\/figure><\/div>\n\n\n<p>For this example, you&#8217;ll create three structured metadata fields: price, description, and stock number.<br><br>2. Add metadata value specifics of this asset via the UI or API.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271573\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-5.png\" alt=\"Metadata values of the shoes\" style=\"width:400px\"\/><\/figure><\/div>\n\n\n<p>3. Now you&#8217;re ready to build your URL on-the-fly transformation. First, declare <a href=\"https:\/\/cloudinary.com\/documentation\/user_defined_variables\" target=\"_blank\" rel=\"noreferrer noopener\">user-defined variables<\/a> so that you can reference them later in the transformation. The basic structure of defining metadata as a variable will be <code>${variable_name}_md:!{metadata_field}!<\/code>. Afterwards, you can incorporate these variables in a few <a href=\"https:\/\/cloudinary.com\/documentation\/layers#text_layer_options\" target=\"_blank\" rel=\"noreferrer noopener\">text layers<\/a> in the asset.<\/p>\n\n\n\n<p>Here\u2019s a breakdown of each section of the final URL:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>https:\/\/res.cloudinary.com\/testy1\/image\/upload\/<\/code><br>The delivery domain with cloud (testy1), the <a href=\"https:\/\/cloudinary.com\/documentation\/upload_images#asset_types\">asset type<\/a> (image), and the <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations#delivery_types\">delivery type<\/a> (upload).<\/li>\n\n\n\n<li><code>$descriptionvar_md:!description\/$stock_md:!stock!\/$price_md:!price!<\/code><br>Reference the metadata field `description` and add <a href=\"https:\/\/cloudinary.com\/documentation\/user_defined_variables\">a user-defined variable<\/a> that you can reference later with the name `desc`, as well as variables for a few other metadata fields.<\/li>\n\n\n\n<li><code>l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray<\/code><br>This is where you use the variable `desc` that was previously defined. Add a <a href=\"https:\/\/cloudinary.com\/documentation\/layers#text_layer_options\" target=\"_blank\" rel=\"noreferrer noopener\">text layer<\/a> and use the variable for the text content. Then, place it with a <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference#g_gravity\" target=\"_blank\" rel=\"noreferrer noopener\">gravity transformation<\/a>; <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference#c_crop_resize\" target=\"_blank\" rel=\"noreferrer noopener\">crop the layer<\/a>; and define its <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference#w_width\" target=\"_blank\" rel=\"noreferrer noopener\">width<\/a>, <a href=\"https:\/\/cloudinary.com\/documentation\/effects_and_artistic_enhancements#setting_background_color\" target=\"_blank\" rel=\"noreferrer noopener\">background color<\/a>, and <a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference#co_color\" target=\"_blank\" rel=\"noreferrer noopener\">font color<\/a>. Add layers for price and stock variables as well.<\/li>\n\n\n\n<li><code>shoes_vq5e2g.png<\/code><br>Finally, specify the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_glossary#public_id\" target=\"_blank\" rel=\"noreferrer noopener\">public_id<\/a> of the asset that holds all of the metadata.<\/li>\n<\/ul>\n\n\n\n<p>After all that hard work, you\u2019re left with the resulting URL:<\/p>\n\n\n<cld-code-widget\n      class=\"wp-block-cloudinary-transformation-widget c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;Transformation variables={[[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]} \\\/&gt; &lt;Transformation variables={[[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]} \\\/&gt; &lt;Transformation variables={[[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]} \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 15, text: \\&quot;%24%28desc%29\\&quot;}} gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 60, text: \\&quot;%24%28price%29\\&quot;}} gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}} gravity=\\&quot;south_east\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;Transformation variables={[[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation variables={[[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation variables={[[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 15, text: \\&quot;%24%28desc%29\\&quot;}} gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 60, text: \\&quot;%24%28price%29\\&quot;}} gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}} gravity=\\&quot;south_east\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 15, text: &#039;%24%28desc%29&#039;}\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 60, text: &#039;%24%28price%29&#039;}\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 10, text: &#039;Only%20%24%28stock%29%20left%20in%20stock&#039;}\\&quot; gravity=\\&quot;south_east\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 15, text: &#039;%24%28desc%29&#039;}\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 60, text: &#039;%24%28price%29&#039;}\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 10, text: &#039;Only%20%24%28stock%29%20left%20in%20stock&#039;}\\&quot; gravity=\\&quot;south_east\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;cl-transformation variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_15:%24%28desc%29\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_60:%24%28price%29\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_10:Only%20%24%28stock%29%20left%20in%20stock\\&quot; gravity=\\&quot;south_east\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_15:%24%28desc%29\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; color=\\&quot;white\\&quot; background=\\&quot;gray\\&quot; crop=\\&quot;fit\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_60:%24%28price%29\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_10:Only%20%24%28stock%29%20left%20in%20stock\\&quot; gravity=\\&quot;south_east\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;shoes_vq5e2g.png&#039;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;shoes_vq5e2g.png&#039;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).image(transformation=[ {&#039;variables&#039;: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {&#039;variables&#039;: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {&#039;variables&#039;: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 15, &#039;text&#039;: \\&quot;%24%28desc%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_west\\&quot;, &#039;width&#039;: 160, &#039;color&#039;: \\&quot;white\\&quot;, &#039;background&#039;: \\&quot;gray\\&quot;, &#039;crop&#039;: \\&quot;fit\\&quot;}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 60, &#039;text&#039;: \\&quot;%24%28price%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;color&#039;: \\&quot;red\\&quot;}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 10, &#039;text&#039;: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, &#039;gravity&#039;: \\&quot;south_east\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).image(transformation=[\\n  {&#039;variables&#039;: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {&#039;variables&#039;: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {&#039;variables&#039;: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 15, &#039;text&#039;: \\&quot;%24%28desc%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_west\\&quot;, &#039;width&#039;: 160, &#039;color&#039;: \\&quot;white\\&quot;, &#039;background&#039;: \\&quot;gray\\&quot;, &#039;crop&#039;: \\&quot;fit\\&quot;},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 60, &#039;text&#039;: \\&quot;%24%28price%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;color&#039;: \\&quot;red\\&quot;},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 10, &#039;text&#039;: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, &#039;gravity&#039;: \\&quot;south_east\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;shoes_vq5e2g.png&#039;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(desc)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,15)))\\n\\t-&gt;textFit(\\n\\tTextFit::size(160))\\n\\t-&gt;textColor(Color::WHITE)\\n\\t-&gt;backgroundColor(Color::GRAY)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northWest()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(price)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,60)))\\n\\t-&gt;textColor(Color::RED)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;Only $(stock) left in stock\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,10))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::southEast()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;shoes_vq5e2g.png&#039;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(desc)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,15)))\\n\\t-&gt;textFit(\\n\\tTextFit::size(160))\\n\\t-&gt;textColor(Color::WHITE)\\n\\t-&gt;backgroundColor(Color::GRAY)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northWest()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(price)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,60)))\\n\\t-&gt;textColor(Color::RED)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;Only $(stock) left in stock\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,10))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::southEast()))\\n\\t)\\n\\t);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;))), array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;))), array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;))), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;15, \\&quot;text\\&quot;=&gt;\\&quot;%24%28desc%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_west\\&quot;, \\&quot;width\\&quot;=&gt;160, \\&quot;color\\&quot;=&gt;\\&quot;white\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fit\\&quot;), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;60, \\&quot;text\\&quot;=&gt;\\&quot;%24%28price%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;10, \\&quot;text\\&quot;=&gt;\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south_east\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;))),\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;))),\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;))),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;15, \\&quot;text\\&quot;=&gt;\\&quot;%24%28desc%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_west\\&quot;, \\&quot;width\\&quot;=&gt;160, \\&quot;color\\&quot;=&gt;\\&quot;white\\&quot;, \\&quot;background\\&quot;=&gt;\\&quot;gray\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fit\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;60, \\&quot;text\\&quot;=&gt;\\&quot;%24%28price%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;10, \\&quot;text\\&quot;=&gt;\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south_east\\&quot;)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).color(\\&quot;white\\&quot;).background(\\&quot;gray\\&quot;).crop(\\&quot;fit\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;)).imageTag(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).color(\\&quot;white\\&quot;).background(\\&quot;gray\\&quot;).crop(\\&quot;fit\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;)).imageTag(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Variables(\\&quot;$desc\\&quot;, md:!description!).Chain() .Variables(\\&quot;$stock\\&quot;, md:!stock!).Chain() .Variables(\\&quot;$price\\&quot;, md:!price!).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(15).Text(\\&quot;%24%28desc%29\\&quot;)).Gravity(\\&quot;north_west\\&quot;).Width(160).Color(\\&quot;white\\&quot;).Background(\\&quot;gray\\&quot;).Crop(\\&quot;fit\\&quot;).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(60).Text(\\&quot;%24%28price%29\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Color(\\&quot;red\\&quot;).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(10).Text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).Gravity(\\&quot;south_east\\&quot;)).BuildImageTag(\\&quot;shoes_vq5e2g.png\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Variables(\\&quot;$desc\\&quot;, md:!description!).Chain()\\n  .Variables(\\&quot;$stock\\&quot;, md:!stock!).Chain()\\n  .Variables(\\&quot;$price\\&quot;, md:!price!).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(15).Text(\\&quot;%24%28desc%29\\&quot;)).Gravity(\\&quot;north_west\\&quot;).Width(160).Color(\\&quot;white\\&quot;).Background(\\&quot;gray\\&quot;).Crop(\\&quot;fit\\&quot;).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(60).Text(\\&quot;%24%28price%29\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Color(\\&quot;red\\&quot;).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(10).Text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).Gravity(\\&quot;south_east\\&quot;)).BuildImageTag(\\&quot;shoes_vq5e2g.png\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().chain() .chain() .chain() .setOverlay(\\&quot;text:verdana_15:%24%28desc%29\\&quot;).setGravity(\\&quot;north_west\\&quot;).setWidth(160).setColor(\\&quot;white\\&quot;).setBackground(\\&quot;gray\\&quot;).setCrop(\\&quot;fit\\&quot;).chain() .setOverlay(\\&quot;text:verdana_60:%24%28price%29\\&quot;).setGravity(\\&quot;north_east\\&quot;).setColor(\\&quot;red\\&quot;).chain() .setOverlay(\\&quot;text:verdana_10:Only%20%24%28stock%29%20left%20in%20stock\\&quot;).setGravity(\\&quot;south_east\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .chain()\\n  .chain()\\n  .chain()\\n  .setOverlay(\\&quot;text:verdana_15:%24%28desc%29\\&quot;).setGravity(\\&quot;north_west\\&quot;).setWidth(160).setColor(\\&quot;white\\&quot;).setBackground(\\&quot;gray\\&quot;).setCrop(\\&quot;fit\\&quot;).chain()\\n  .setOverlay(\\&quot;text:verdana_60:%24%28price%29\\&quot;).setGravity(\\&quot;north_east\\&quot;).setColor(\\&quot;red\\&quot;).chain()\\n  .setOverlay(\\&quot;text:verdana_10:Only%20%24%28stock%29%20left%20in%20stock\\&quot;).setGravity(\\&quot;south_east\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).color(\\&quot;white\\&quot;).background(\\&quot;gray\\&quot;).crop(\\&quot;fit\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).color(\\&quot;white\\&quot;).background(\\&quot;gray\\&quot;).crop(\\&quot;fit\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;shoes_vq5e2g.png\\&quot;)\\n\\t addVariable(Variable.setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t addVariable(Variable.setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t addVariable(Variable.setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;\\\\$(desc)\\&quot;,TextStyle(\\&quot;verdana\\&quot;,15)) {\\n\\t textFit(\\n\\tTextFit.size(160))\\n\\t textColor(Color.WHITE)\\n\\t backgroundColor(Color.GRAY)\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northWest()))\\n\\t })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;\\\\$(price)\\&quot;,TextStyle(\\&quot;verdana\\&quot;,60)) {\\n\\t textColor(Color.RED)\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;Only \\\\$(stock) left in stock\\&quot;,TextStyle(\\&quot;verdana\\&quot;,10))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.southEast()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;shoes_vq5e2g.png\\&quot;)\\n\\t addVariable(Variable.setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t addVariable(Variable.setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t addVariable(Variable.setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;\\\\$(desc)\\&quot;,TextStyle(\\&quot;verdana\\&quot;,15)) {\\n\\t textFit(\\n\\tTextFit.size(160))\\n\\t textColor(Color.WHITE)\\n\\t backgroundColor(Color.GRAY)\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northWest()))\\n\\t })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;\\\\$(price)\\&quot;,TextStyle(\\&quot;verdana\\&quot;,60)) {\\n\\t textColor(Color.RED)\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t })\\n\\t })\\n\\t overlay(Overlay.source(\\n\\tSource.text(\\&quot;Only \\\\$(stock) left in stock\\&quot;,TextStyle(\\&quot;verdana\\&quot;,10))) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.southEast()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, color: \\&quot;white\\&quot;, background: \\&quot;gray\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;Only%20%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/testy1\\\/image\\\/upload\\\/$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only%20$(stock)%20left%20in%20stock,g_south_east\\\/shoes_vq5e2g.png&quot;,&quot;cloud_name&quot;:&quot;testy1&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;$desc&quot;:&quot;md:!description!&quot;},{&quot;$stock&quot;:&quot;md:!stock!&quot;},{&quot;$price&quot;:&quot;md:!price!&quot;},{&quot;overlay&quot;:&quot;text:verdana_15:$(desc)&quot;,&quot;gravity&quot;:&quot;north_west&quot;,&quot;crop_mode&quot;:&quot;fit&quot;,&quot;width&quot;:&quot;160&quot;,&quot;color&quot;:&quot;white&quot;,&quot;background&quot;:&quot;gray&quot;},{&quot;overlay&quot;:&quot;text:verdana_60:$(price)&quot;,&quot;gravity&quot;:&quot;north_east&quot;,&quot;color&quot;:&quot;red&quot;},{&quot;overlay&quot;:&quot;text:verdana_10:Only $(stock) left in stock&quot;,&quot;gravity&quot;:&quot;south_east&quot;}],&quot;transformation_string&quot;:&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:Only $(stock) left in stock,g_south_east&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;shoes_vq5e2g.png&quot;,&quot;extension&quot;:&quot;png&quot;,&quot;format&quot;:&quot;png&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/testy1\/image\/upload\/$desc_md:!description!\/$stock_md:!stock!\/$price_md:!price!\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\/l_text:verdana_60:$(price),g_north_east,co_red\/l_text:verdana_10:Only%20$(stock)%20left%20in%20stock,g_south_east\/shoes_vq5e2g.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/testy1\/image\/upload\/$desc_md:!description!\/$stock_md:!stock!\/$price_md:!price!\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\/l_text:verdana_60:$(price),g_north_east,co_red\/l_text:verdana_10:Only%20$(stock)%20left%20in%20stock,g_south_east\/shoes_vq5e2g.png\" alt=\"\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271557\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-1.png\" alt=\"Image of shoes with product description on the top left and the price on the top right\" style=\"width:400px\"\/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/res.cloudinary.com\/testy1\/image\/upload\/$desc_md:!description!\/$stock_md:!stock!\/$price_md:!price!\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,co_white,b_gray\/l_text:verdana_60:$(price),g_north_east,co_red\/l_text:verdana_10:Only%20$(stock)%20left%20in%20stock,g_south_east\/shoes_vq5e2g.png\">Adding Conditions to the Mix<\/a><\/h2>\n\n\n\n<p>The great thing about using structured metadata is that the asset can update automatically without any need to modify the delivery URL. You can also create <code>if<\/code> statements to programmatically change your asset based on your metadata fields.<br><br>For example, if inventory drops below a certain amount, all you have to do is add an <code>if<\/code> statement to your URL to automatically change the image. You can further automate this process by using Cloudinary\u2019s Metadata API to programmatically link your external database and asset metadata containing product data (e.g., pricing, inventory, etc.).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">if_$stock_lt_1\/l_text:verdana_100:SOLD%<span class=\"hljs-number\">20<\/span>OUT,co_red\/if_end<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1764271577\/blog-How_to_Automatically_and_Programmatically_Update_Assets_Based_on_Metadata-6.png\" alt=\"Image of shoes with SOLD OUT in bold red text overlayed on top\" style=\"width:400px\"\/><\/figure><\/div>\n\n<cld-code-widget\n      class=\"wp-block-cloudinary-transformation-widget c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;}, {if: \\&quot;$stock_lt_1\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 100, text: \\&quot;SOLD%20OUT\\&quot;}, color: \\&quot;red\\&quot;}, {if: \\&quot;end\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;},\\n  {if: \\&quot;$stock_lt_1\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 100, text: \\&quot;SOLD%20OUT\\&quot;}, color: \\&quot;red\\&quot;},\\n  {if: \\&quot;end\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;Transformation variables={[[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]} \\\/&gt; &lt;Transformation variables={[[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]} \\\/&gt; &lt;Transformation variables={[[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]} \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 15, text: \\&quot;%24%28desc%29\\&quot;}} gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 60, text: \\&quot;%24%28price%29\\&quot;}} gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}} gravity=\\&quot;south_east\\&quot; \\\/&gt; &lt;Transformation if=\\&quot;$stock_lt_1\\&quot; \\\/&gt; &lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 100, text: \\&quot;SOLD%20OUT\\&quot;}} color=\\&quot;red\\&quot; \\\/&gt; &lt;Transformation if=\\&quot;end\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;Transformation variables={[[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation variables={[[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation variables={[[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]} \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 15, text: \\&quot;%24%28desc%29\\&quot;}} gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 60, text: \\&quot;%24%28price%29\\&quot;}} gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}} gravity=\\&quot;south_east\\&quot; \\\/&gt;\\n\\t&lt;Transformation if=\\&quot;$stock_lt_1\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay={{fontFamily: \\&quot;verdana\\&quot;, fontSize: 100, text: \\&quot;SOLD%20OUT\\&quot;}} color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;Transformation if=\\&quot;end\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 15, text: &#039;%24%28desc%29&#039;}\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 60, text: &#039;%24%28price%29&#039;}\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 10, text: &#039;%24%28stock%29%20left%20in%20stock&#039;}\\&quot; gravity=\\&quot;south_east\\&quot; \\\/&gt; &lt;cld-transformation if=\\&quot;$stock_lt_1\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 100, text: &#039;SOLD%20OUT&#039;}\\&quot; color=\\&quot;red\\&quot; \\\/&gt; &lt;cld-transformation if=\\&quot;end\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 15, text: &#039;%24%28desc%29&#039;}\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 60, text: &#039;%24%28price%29&#039;}\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 10, text: &#039;%24%28stock%29%20left%20in%20stock&#039;}\\&quot; gravity=\\&quot;south_east\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation if=\\&quot;$stock_lt_1\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;{fontFamily: &#039;verdana&#039;, fontSize: 100, text: &#039;SOLD%20OUT&#039;}\\&quot; color=\\&quot;red\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation if=\\&quot;end\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt; &lt;cl-transformation variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_15:%24%28desc%29\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_60:%24%28price%29\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_10:%24%28stock%29%20left%20in%20stock\\&quot; gravity=\\&quot;south_east\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation if=\\&quot;$stock_lt_1\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;text:verdana_100:SOLD%20OUT\\&quot; color=\\&quot;red\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation if=\\&quot;end\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;shoes_vq5e2g.png\\&quot; &gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$desc&#039;, &#039;md:!description!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$stock&#039;, &#039;md:!stock!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation variables=\\&quot;[[&#039;$price&#039;, &#039;md:!price!&#039;]]\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_15:%24%28desc%29\\&quot; gravity=\\&quot;north_west\\&quot; width=\\&quot;160\\&quot; background=\\&quot;lightblue\\&quot; crop=\\&quot;fit\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_60:%24%28price%29\\&quot; gravity=\\&quot;north_east\\&quot; color=\\&quot;red\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_10:%24%28stock%29%20left%20in%20stock\\&quot; gravity=\\&quot;south_east\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation if=\\&quot;$stock_lt_1\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;text:verdana_100:SOLD%20OUT\\&quot; color=\\&quot;red\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation if=\\&quot;end\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;shoes_vq5e2g.png&#039;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;}, {if: \\&quot;$stock_lt_1\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;), color: \\&quot;red\\&quot;}, {if: \\&quot;end\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;shoes_vq5e2g.png&#039;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;},\\n  {if: \\&quot;$stock_lt_1\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;), color: \\&quot;red\\&quot;},\\n  {if: \\&quot;end\\&quot;}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).image(transformation=[ {&#039;variables&#039;: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {&#039;variables&#039;: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {&#039;variables&#039;: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 15, &#039;text&#039;: \\&quot;%24%28desc%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_west\\&quot;, &#039;width&#039;: 160, &#039;background&#039;: \\&quot;lightblue\\&quot;, &#039;crop&#039;: \\&quot;fit\\&quot;}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 60, &#039;text&#039;: \\&quot;%24%28price%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;color&#039;: \\&quot;red\\&quot;}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 10, &#039;text&#039;: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, &#039;gravity&#039;: \\&quot;south_east\\&quot;}, {&#039;if&#039;: \\&quot;$stock_lt_1\\&quot;}, {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 100, &#039;text&#039;: \\&quot;SOLD%20OUT\\&quot;}, &#039;color&#039;: \\&quot;red\\&quot;}, {&#039;if&#039;: \\&quot;end\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).image(transformation=[\\n  {&#039;variables&#039;: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {&#039;variables&#039;: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {&#039;variables&#039;: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 15, &#039;text&#039;: \\&quot;%24%28desc%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_west\\&quot;, &#039;width&#039;: 160, &#039;background&#039;: \\&quot;lightblue\\&quot;, &#039;crop&#039;: \\&quot;fit\\&quot;},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 60, &#039;text&#039;: \\&quot;%24%28price%29\\&quot;}, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;color&#039;: \\&quot;red\\&quot;},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 10, &#039;text&#039;: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, &#039;gravity&#039;: \\&quot;south_east\\&quot;},\\n  {&#039;if&#039;: \\&quot;$stock_lt_1\\&quot;},\\n  {&#039;overlay&#039;: {&#039;font_family&#039;: \\&quot;verdana\\&quot;, &#039;font_size&#039;: 100, &#039;text&#039;: \\&quot;SOLD%20OUT\\&quot;}, &#039;color&#039;: \\&quot;red\\&quot;},\\n  {&#039;if&#039;: \\&quot;end\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;shoes_vq5e2g.png&#039;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(desc)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,15)))\\n\\t-&gt;textFit(\\n\\tTextFit::size(160))\\n\\t-&gt;backgroundColor(Color::LIGHTBLUE)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northWest()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(price)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,60)))\\n\\t-&gt;textColor(Color::RED)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(stock) left in stock\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,10))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::southEast()))\\n\\t)\\n\\t)\\n\\t-&gt;conditional(Conditional::ifCondition(\\&quot;$stock &lt; 1\\&quot;,(new Transformation())\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;SOLD OUT\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,100)))\\n\\t-&gt;textColor(Color::RED)\\n\\t))));&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;shoes_vq5e2g.png&#039;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;desc\\&quot;,\\&quot;description\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;stock\\&quot;,\\&quot;stock\\&quot;))\\n\\t-&gt;addVariable(Variable::setFromMetadata(\\&quot;price\\&quot;,\\&quot;price\\&quot;))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(desc)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,15)))\\n\\t-&gt;textFit(\\n\\tTextFit::size(160))\\n\\t-&gt;backgroundColor(Color::LIGHTBLUE)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northWest()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(price)\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,60)))\\n\\t-&gt;textColor(Color::RED)\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t)\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;$(stock) left in stock\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,10))))\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::southEast()))\\n\\t)\\n\\t)\\n\\t-&gt;conditional(Conditional::ifCondition(\\&quot;$stock &lt; 1\\&quot;,(new Transformation())\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::text(\\&quot;SOLD OUT\\&quot;,(new TextStyle(\\&quot;verdana\\&quot;,100)))\\n\\t-&gt;textColor(Color::RED)\\n\\t))));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;))), array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;))), array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;))), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;15, \\&quot;text\\&quot;=&gt;\\&quot;%24%28desc%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_west\\&quot;, \\&quot;width\\&quot;=&gt;160, \\&quot;background\\&quot;=&gt;\\&quot;lightblue\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fit\\&quot;), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;60, \\&quot;text\\&quot;=&gt;\\&quot;%24%28price%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;10, \\&quot;text\\&quot;=&gt;\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south_east\\&quot;), array(\\&quot;if\\&quot;=&gt;\\&quot;$stock_lt_1\\&quot;), array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;100, \\&quot;text\\&quot;=&gt;\\&quot;SOLD%20OUT\\&quot;), \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;), array(\\&quot;if\\&quot;=&gt;\\&quot;end\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;))),\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;))),\\n  array(\\&quot;variables\\&quot;=&gt;array(array(\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;))),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;15, \\&quot;text\\&quot;=&gt;\\&quot;%24%28desc%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_west\\&quot;, \\&quot;width\\&quot;=&gt;160, \\&quot;background\\&quot;=&gt;\\&quot;lightblue\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fit\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;60, \\&quot;text\\&quot;=&gt;\\&quot;%24%28price%29\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;10, \\&quot;text\\&quot;=&gt;\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), \\&quot;gravity\\&quot;=&gt;\\&quot;south_east\\&quot;),\\n  array(\\&quot;if\\&quot;=&gt;\\&quot;$stock_lt_1\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;array(\\&quot;font_family\\&quot;=&gt;\\&quot;verdana\\&quot;, \\&quot;font_size\\&quot;=&gt;100, \\&quot;text\\&quot;=&gt;\\&quot;SOLD%20OUT\\&quot;), \\&quot;color\\&quot;=&gt;\\&quot;red\\&quot;),\\n  array(\\&quot;if\\&quot;=&gt;\\&quot;end\\&quot;)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).background(\\&quot;lightblue\\&quot;).crop(\\&quot;fit\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;).chain() .if(\\&quot;$stock_lt_1\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;)).color(\\&quot;red\\&quot;).chain() .if(\\&quot;end\\&quot;)).imageTag(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).background(\\&quot;lightblue\\&quot;).crop(\\&quot;fit\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;).chain()\\n  .if(\\&quot;$stock_lt_1\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;)).color(\\&quot;red\\&quot;).chain()\\n  .if(\\&quot;end\\&quot;)).imageTag(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;}, {if: \\&quot;$stock_lt_1\\&quot;}, {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 100, text: \\&quot;SOLD%20OUT\\&quot;}, color: \\&quot;red\\&quot;}, {if: \\&quot;end\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;shoes_vq5e2g.png\\&quot;, transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 15, text: \\&quot;%24%28desc%29\\&quot;}, gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 60, text: \\&quot;%24%28price%29\\&quot;}, gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 10, text: \\&quot;%24%28stock%29%20left%20in%20stock\\&quot;}, gravity: \\&quot;south_east\\&quot;},\\n  {if: \\&quot;$stock_lt_1\\&quot;},\\n  {overlay: {font_family: \\&quot;verdana\\&quot;, font_size: 100, text: \\&quot;SOLD%20OUT\\&quot;}, color: \\&quot;red\\&quot;},\\n  {if: \\&quot;end\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Variables(\\&quot;$desc\\&quot;, md:!description!).Chain() .Variables(\\&quot;$stock\\&quot;, md:!stock!).Chain() .Variables(\\&quot;$price\\&quot;, md:!price!).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(15).Text(\\&quot;%24%28desc%29\\&quot;)).Gravity(\\&quot;north_west\\&quot;).Width(160).Background(\\&quot;lightblue\\&quot;).Crop(\\&quot;fit\\&quot;).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(60).Text(\\&quot;%24%28price%29\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Color(\\&quot;red\\&quot;).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(10).Text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).Gravity(\\&quot;south_east\\&quot;).Chain() .If(\\&quot;$stock_lt_1\\&quot;).Chain() .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(100).Text(\\&quot;SOLD%20OUT\\&quot;)).Color(\\&quot;red\\&quot;).Chain() .If(\\&quot;end\\&quot;)).BuildImageTag(\\&quot;shoes_vq5e2g.png\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Variables(\\&quot;$desc\\&quot;, md:!description!).Chain()\\n  .Variables(\\&quot;$stock\\&quot;, md:!stock!).Chain()\\n  .Variables(\\&quot;$price\\&quot;, md:!price!).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(15).Text(\\&quot;%24%28desc%29\\&quot;)).Gravity(\\&quot;north_west\\&quot;).Width(160).Background(\\&quot;lightblue\\&quot;).Crop(\\&quot;fit\\&quot;).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(60).Text(\\&quot;%24%28price%29\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Color(\\&quot;red\\&quot;).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(10).Text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).Gravity(\\&quot;south_east\\&quot;).Chain()\\n  .If(\\&quot;$stock_lt_1\\&quot;).Chain()\\n  .Overlay(new TextLayer().FontFamily(\\&quot;verdana\\&quot;).FontSize(100).Text(\\&quot;SOLD%20OUT\\&quot;)).Color(\\&quot;red\\&quot;).Chain()\\n  .If(\\&quot;end\\&quot;)).BuildImageTag(\\&quot;shoes_vq5e2g.png\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().chain() .chain() .chain() .setOverlay(\\&quot;text:verdana_15:%24%28desc%29\\&quot;).setGravity(\\&quot;north_west\\&quot;).setWidth(160).setBackground(\\&quot;lightblue\\&quot;).setCrop(\\&quot;fit\\&quot;).chain() .setOverlay(\\&quot;text:verdana_60:%24%28price%29\\&quot;).setGravity(\\&quot;north_east\\&quot;).setColor(\\&quot;red\\&quot;).chain() .setOverlay(\\&quot;text:verdana_10:%24%28stock%29%20left%20in%20stock\\&quot;).setGravity(\\&quot;south_east\\&quot;).chain() .setIf(\\&quot;$stock_lt_1\\&quot;).chain() .setOverlay(\\&quot;text:verdana_100:SOLD%20OUT\\&quot;).setColor(\\&quot;red\\&quot;).chain() .setIf(\\&quot;end\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .chain()\\n  .chain()\\n  .chain()\\n  .setOverlay(\\&quot;text:verdana_15:%24%28desc%29\\&quot;).setGravity(\\&quot;north_west\\&quot;).setWidth(160).setBackground(\\&quot;lightblue\\&quot;).setCrop(\\&quot;fit\\&quot;).chain()\\n  .setOverlay(\\&quot;text:verdana_60:%24%28price%29\\&quot;).setGravity(\\&quot;north_east\\&quot;).setColor(\\&quot;red\\&quot;).chain()\\n  .setOverlay(\\&quot;text:verdana_10:%24%28stock%29%20left%20in%20stock\\&quot;).setGravity(\\&quot;south_east\\&quot;).chain()\\n  .setIf(\\&quot;$stock_lt_1\\&quot;).chain()\\n  .setOverlay(\\&quot;text:verdana_100:SOLD%20OUT\\&quot;).setColor(\\&quot;red\\&quot;).chain()\\n  .setIf(\\&quot;end\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain() .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).background(\\&quot;lightblue\\&quot;).crop(\\&quot;fit\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;).chain() .if(\\&quot;$stock_lt_1\\&quot;).chain() .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;)).color(\\&quot;red\\&quot;).chain() .if(\\&quot;end\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).chain()\\n  .variables(variable(\\&quot;$desc\\&quot;,\\&quot;md:!description!\\&quot;)).variables(variable(\\&quot;$stock\\&quot;,\\&quot;md:!stock!\\&quot;)).variables(variable(\\&quot;$price\\&quot;,\\&quot;md:!price!\\&quot;)).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;)).gravity(\\&quot;north_west\\&quot;).width(160).background(\\&quot;lightblue\\&quot;).crop(\\&quot;fit\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;)).gravity(\\&quot;north_east\\&quot;).color(\\&quot;red\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;)).gravity(\\&quot;south_east\\&quot;).chain()\\n  .if(\\&quot;$stock_lt_1\\&quot;).chain()\\n  .overlay(new TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;)).color(\\&quot;red\\&quot;).chain()\\n  .if(\\&quot;end\\&quot;)).generate(\\&quot;shoes_vq5e2g.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;shoes_vq5e2g.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;shoes_vq5e2g.png\\&quot;)\\n\\t addTransformation(\\&quot;\\\\$desc_md:!description!\\\/\\\\$stock_md:!stock!\\\/\\\\$price_md:!price!\\\/l_text:verdana_15:\\\\$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:\\\\$(price),g_north_east,co_red\\\/l_text:verdana_10:\\\\$(stock) left in stock,g_south_east\\\/if_\\\\$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;shoes_vq5e2g.png\\&quot;)\\n\\t addTransformation(\\&quot;\\\\$desc_md:!description!\\\/\\\\$stock_md:!stock!\\\/\\\\$price_md:!price!\\\/l_text:verdana_15:\\\\$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:\\\\$(price),g_north_east,co_red\\\/l_text:verdana_10:\\\\$(stock) left in stock,g_south_east\\\/if_\\\\$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [ {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]}, {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]}, {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;}, {if: \\&quot;$stock_lt_1\\&quot;}, {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;), color: \\&quot;red\\&quot;}, {if: \\&quot;end\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;shoes_vq5e2g.png\\&quot;, {transformation: [\\n  {variables: [[\\&quot;$desc\\&quot;, \\&quot;md:!description!\\&quot;]]},\\n  {variables: [[\\&quot;$stock\\&quot;, \\&quot;md:!stock!\\&quot;]]},\\n  {variables: [[\\&quot;$price\\&quot;, \\&quot;md:!price!\\&quot;]]},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(15).text(\\&quot;%24%28desc%29\\&quot;), gravity: \\&quot;north_west\\&quot;, width: 160, background: \\&quot;lightblue\\&quot;, crop: \\&quot;fit\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(60).text(\\&quot;%24%28price%29\\&quot;), gravity: \\&quot;north_east\\&quot;, color: \\&quot;red\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(10).text(\\&quot;%24%28stock%29%20left%20in%20stock\\&quot;), gravity: \\&quot;south_east\\&quot;},\\n  {if: \\&quot;$stock_lt_1\\&quot;},\\n  {overlay: new cloudinary.TextLayer().fontFamily(\\&quot;verdana\\&quot;).fontSize(100).text(\\&quot;SOLD%20OUT\\&quot;), color: \\&quot;red\\&quot;},\\n  {if: \\&quot;end\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;shoes_vq5e2g.png\\&quot;).addTransformation(\\n  \\&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end\\&quot;\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/testy1\\\/image\\\/upload\\\/$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock)%20left%20in%20stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD%20OUT,co_red\\\/if_end\\\/shoes_vq5e2g.png&quot;,&quot;cloud_name&quot;:&quot;testy1&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;$desc&quot;:&quot;md:!description!&quot;},{&quot;$stock&quot;:&quot;md:!stock!&quot;},{&quot;$price&quot;:&quot;md:!price!&quot;},{&quot;overlay&quot;:&quot;text:verdana_15:$(desc)&quot;,&quot;gravity&quot;:&quot;north_west&quot;,&quot;crop_mode&quot;:&quot;fit&quot;,&quot;width&quot;:&quot;160&quot;,&quot;background&quot;:&quot;lightblue&quot;},{&quot;overlay&quot;:&quot;text:verdana_60:$(price)&quot;,&quot;gravity&quot;:&quot;north_east&quot;,&quot;color&quot;:&quot;red&quot;},{&quot;overlay&quot;:&quot;text:verdana_10:$(stock) left in stock&quot;,&quot;gravity&quot;:&quot;south_east&quot;},{&quot;if&quot;:&quot;$stock_lt_1&quot;},{&quot;overlay&quot;:&quot;text:verdana_100:SOLD OUT&quot;,&quot;color&quot;:&quot;red&quot;},{&quot;if&quot;:&quot;end&quot;}],&quot;transformation_string&quot;:&quot;$desc_md:!description!\\\/$stock_md:!stock!\\\/$price_md:!price!\\\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\\\/l_text:verdana_60:$(price),g_north_east,co_red\\\/l_text:verdana_10:$(stock) left in stock,g_south_east\\\/if_$stock_lt_1\\\/l_text:verdana_100:SOLD OUT,co_red\\\/if_end&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;shoes_vq5e2g.png&quot;,&quot;extension&quot;:&quot;png&quot;,&quot;format&quot;:&quot;png&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/testy1\/image\/upload\/$desc_md:!description!\/$stock_md:!stock!\/$price_md:!price!\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\/l_text:verdana_60:$(price),g_north_east,co_red\/l_text:verdana_10:$(stock)%20left%20in%20stock,g_south_east\/if_$stock_lt_1\/l_text:verdana_100:SOLD%20OUT,co_red\/if_end\/shoes_vq5e2g.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/testy1\/image\/upload\/$desc_md:!description!\/$stock_md:!stock!\/$price_md:!price!\/l_text:verdana_15:$(desc),g_north_west,c_fit,w_160,b_lightblue\/l_text:verdana_60:$(price),g_north_east,co_red\/l_text:verdana_10:$(stock)%20left%20in%20stock,g_south_east\/if_$stock_lt_1\/l_text:verdana_100:SOLD%20OUT,co_red\/if_end\/shoes_vq5e2g.png\" alt=\"\" loading=\"lazy\" class=\"c-transformed-asset\" \/><\/a>\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>An invalidation request will need to be made when updating existing assets so that the old cached version will be updated.<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Using structured metadata fields in your transformations might seem complicated at first, but with a little practice, you can create amazing programmatic assets.<br><br>Now that you&#8217;ve learned how to reference your asset&#8217;s structured metadata field in your transformation, you can quickly and automatically update your assets by combining them with conditional transformations, or simply by shortening your URLs. You could even use <a href=\"https:\/\/cloudinary.com\/documentation\/named_transformations_tutorial\" target=\"_blank\" rel=\"noreferrer noopener\">Named Transformations<\/a> to implement your new transformation at scale. There\u2019s no limit to what you can accomplish.&nbsp;<\/p>\n\n\n\n<p>Resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/conditional_transformations\">Conditional Transformations<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/transformation_reference\">Transformation API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/admin_api\">Metadata API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/user_defined_variables\">User Defined Variables<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to update everything else. Cloudinary makes this process a whole lot easier. Instead of manually create a new version of a product image when pricing, availability, dates, quantity, or anything else changes, you can [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":30394,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[332,370,165],"class_list":["post-30393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-api","tag-image","tag-image-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Automatically and Programmatically Update Assets Based on Metadata<\/title>\n<meta name=\"description\" content=\"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Automatically and Programmatically Update Assets Based on Metadata\" \/>\n<meta property=\"og:description\" content=\"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-11T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-27T19:37:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"How to Automatically and Programmatically Update Assets Based on Metadata\",\"datePublished\":\"2023-07-11T14:00:00+00:00\",\"dateModified\":\"2025-11-27T19:37:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\"},\"wordCount\":562,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA\",\"keywords\":[\"API\",\"Image\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\",\"url\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\",\"name\":\"How to Automatically and Programmatically Update Assets Based on Metadata\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA\",\"datePublished\":\"2023-07-11T14:00:00+00:00\",\"dateModified\":\"2025-11-27T19:37:48+00:00\",\"description\":\"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Automatically and Programmatically Update Assets Based on Metadata\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Automatically and Programmatically Update Assets Based on Metadata","description":"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata","og_locale":"en_US","og_type":"article","og_title":"How to Automatically and Programmatically Update Assets Based on Metadata","og_description":"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to","og_url":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata","og_site_name":"Cloudinary Blog","article_published_time":"2023-07-11T14:00:00+00:00","article_modified_time":"2025-11-27T19:37:48+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"How to Automatically and Programmatically Update Assets Based on Metadata","datePublished":"2023-07-11T14:00:00+00:00","dateModified":"2025-11-27T19:37:48+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata"},"wordCount":562,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","keywords":["API","Image","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata","url":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata","name":"How to Automatically and Programmatically Update Assets Based on Metadata","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","datePublished":"2023-07-11T14:00:00+00:00","dateModified":"2025-11-27T19:37:48+00:00","description":"Oftentimes you may find yourself flipping between databases, marketing releases, and media assets while trying to remember when one thing changes to","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/automatically-and-programmatically-update-assets-metadata#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Automatically and Programmatically Update Assets Based on Metadata"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1688164165\/Blog-Automatic-Updates-with-Metadata\/Blog-Automatic-Updates-with-Metadata.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/30393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=30393"}],"version-history":[{"count":8,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/30393\/revisions"}],"predecessor-version":[{"id":39486,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/30393\/revisions\/39486"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/30394"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=30393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=30393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=30393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}