summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-08-10 04:56:36 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-08-10 04:56:36 +0000
commit5ed45c6e91b2b341b5698b4ed6d5de5ab756dbee (patch)
tree91eb1a947c9b7a4aac9871c58b081c79c197dd17
parent4fd0d7f15ee2d7958c6d9c60faf03d1e9915eaef (diff)
parentddc94ab173b4bf01de9dfa900f951eed56fe77b6 (diff)
Merged in feature/email-cart-wishlist (pull request #95)
Update website user cart mail template
-rw-r--r--indoteknik_api/models/product_product.py4
-rw-r--r--indoteknik_custom/models/website_user_cart.py12
-rwxr-xr-xindoteknik_custom/views/website_user_cart.xml145
3 files changed, 86 insertions, 75 deletions
diff --git a/indoteknik_api/models/product_product.py b/indoteknik_api/models/product_product.py
index ff7c6498..a2d2f8a2 100644
--- a/indoteknik_api/models/product_product.py
+++ b/indoteknik_api/models/product_product.py
@@ -55,8 +55,8 @@ class ProductProduct(models.Model):
product_promotions = program_line.get_active_promotions(self.id)
return True if len(product_promotions) > 0 else False
- def calculate_website_price(self):
- pricelist = self.env.user_pricelist
+ def calculate_website_price(self, pricelist=False):
+ pricelist = pricelist or self.env.user_pricelist
config = self.env['ir.config_parameter']
product_pricelist_tier1 = int(config.get_param('product.pricelist.tier1'))
diff --git a/indoteknik_custom/models/website_user_cart.py b/indoteknik_custom/models/website_user_cart.py
index 13bad358..bf7016f8 100644
--- a/indoteknik_custom/models/website_user_cart.py
+++ b/indoteknik_custom/models/website_user_cart.py
@@ -14,12 +14,12 @@ class WebsiteUserCart(models.Model):
('add_to_cart', 'Add To Cart'),
('buy', 'Buy')
], 'Source', default='add_to_cart')
- other_carts = fields.One2many('website.user.cart', 'id', 'Other Products', compute='_compute_other_carts')
+ user_other_carts = fields.One2many('website.user.cart', 'id', 'Other Products', compute='_compute_user_other_carts')
- def _compute_other_carts(self):
+ def _compute_user_other_carts(self):
for record in self:
others = self.search([('user_id', '=', record.user_id.id)])
- record.other_carts = others
+ record.user_other_carts = others
def get_product(self):
user_data = {
@@ -94,4 +94,8 @@ class WebsiteUserCart(models.Model):
def action_mail_reminder_to_checkout(self, id):
template = self.env.ref('indoteknik_custom.mail_template_user_cart_reminder_to_checkout')
- template.send_mail(int(id), force_send=True) \ No newline at end of file
+ template.send_mail(int(id), force_send=True)
+
+ def format_currency(self, number):
+ number = int(number)
+ return "{:,}".format(number).replace(',', '.') \ No newline at end of file
diff --git a/indoteknik_custom/views/website_user_cart.xml b/indoteknik_custom/views/website_user_cart.xml
index a6456cf2..f43c9f63 100755
--- a/indoteknik_custom/views/website_user_cart.xml
+++ b/indoteknik_custom/views/website_user_cart.xml
@@ -70,79 +70,86 @@
<field name="email_from">sales@indoteknik.com</field>
<field name="email_to">${object.user_id.login | safe}</field>
<field name="body_html" type="html">
- <div>
- <style>
- .product-card {
- box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
- }
- .product-card td {
- padding: 0px 8px;
- }
- </style>
- <table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Inter, Helvetica, Verdana, Arial,sans-serif; line-height: 24px; color: #454748; width: 100%; border-collapse:separate;">
- <tr>
- <td align="center">
- <table border="0" cellpadding="0" cellspacing="0" width="590" style="font-size: 13px; padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
- <tbody>
- <!-- HEADER -->
- <tr>
- <td align="center" style="min-width: 590px;">
- <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
- <tr>
- <td valign="middle">
- <span></span>
- </td>
- </tr>
+ <table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Inter, Helvetica, Verdana, Arial,sans-serif; line-height: 24px; color: #454748; width: 100%; border-collapse:separate;">
+ <tr><td align="center">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="font-size: 13px; padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
+ <!-- HEADER -->
+ <tbody>
+ <tr>
+ <td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
+ <tr>
+ <td valign="middle">
+ <span></span>
+ </td>
+ </tr>
- <tr>
- <td colspan="2" style="text-align:center;">
- <hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" />
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <!-- CONTENT -->
- <tr>
- <td align="center" style="min-width: 590px;">
- <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
- <tr><td style="padding-bottom: 24px;">Halo ${object.user_id.name},</td></tr>
+ <tr>
+ <td colspan="2" style="text-align:center;">
+ <hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- CONTENT -->
+ <tr>
+ <td align="center" style="min-width: 590px;">
+ <table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
+ <tr><td style="padding-bottom: 24px;">Halo ${object.user_id.name},</td></tr>
- <tr><td style="padding-bottom: 16px;">Kami harap Anda dalam keadaan baik. Kami ingin mengingatkan Anda bahwa Anda memiliki beberapa produk yang masih ada di keranjang belanja Anda di situs kami, tetapi belum selesai untuk proses checkout.</td></tr>
- <tr><td style="padding-bottom: 16px;">Jika Anda masih tertarik dengan produk-produk tersebut, jangan ragu untuk segera melanjutkan proses pembayaran. Ini adalah kesempatan Anda untuk mendapatkan barang-barang yang Anda inginkan sebelum kehabisan stok.</td></tr>
- <tr><td style="padding-bottom: 16px;">Berikut adalah daftar produk yang masih ada di keranjang belanja Anda:</td></tr>
- <!-- PRODUCT TABLE -->
- <tr><td><table style="width: 100%;">
- <tbody>
- <tr class="product-card">
- <td>
- <img src="https://erp.indoteknik.com/api/image/product.template/image_512/126701" alt="Nama Produk" width="120" height="120">
- </td>
- </tr>
- </tbody>
- </table></td></tr>
+ <tr><td style="padding-bottom: 16px;">Kami harap Anda dalam keadaan baik. Kami ingin mengingatkan Anda bahwa Anda memiliki beberapa produk yang masih ada di keranjang belanja Anda di situs kami, tetapi belum selesai untuk proses checkout.</td></tr>
+ <tr><td style="padding-bottom: 16px;">Jika Anda masih tertarik dengan produk-produk tersebut, jangan ragu untuk segera melanjutkan proses pembayaran. Ini adalah kesempatan Anda untuk mendapatkan barang-barang yang Anda inginkan sebelum kehabisan stok.</td></tr>
+ <tr><td style="padding-bottom: 16px;">Berikut adalah daftar produk yang masih ada di keranjang belanja Anda:</td></tr>
+ <!-- PRODUCT TABLE -->
+ <tr><td>
+ % set base_url = object.env['ir.config_parameter'].get_param('web.base.url')
+ % for cart in object.user_other_carts:
+ % set user_pricelist = cart.user_id.partner_id.property_product_pricelist
+ % set product_price = cart.product_id.calculate_website_price(pricelist=user_pricelist)
+ % set product_template_id = cart.product_id.product_tmpl_id.id
+ % set subtotal = product_price['price_discount'] * cart.qty
+ <a href="https://indoteknik.com/shop/cart">
+ <table style="box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; width: 100%; margin-bottom: 12px; color: black !important;">
+ <tbody>
+ <tr>
+ <td style="width: 120px; padding: 8px !important;">
+ <img src="${base_url}api/image/product.template/image_512/${product_template_id}" alt="${cart.product_id.name}" width="120" height="120" style="object-fit: fill; object-position: center;"/>
+ </td>
+ <td style="vertical-align: top; padding: 8px;">
+ <div style="font-weight: 600;">${cart.product_id.name}</div>
+ % if product_price['discount_percentage'] != 0:
+ <div><span style="text-decoration: line-through;">Rp${cart.format_currency(product_price['price'])}</span> (${'%d' % product_price['discount_percentage']}%)</div>
+ % endif
+ <div>Rp${cart.format_currency(product_price['price_discount'])} x ${'%d pcs' % cart.qty}</div>
+ <div style="font-weight: 600;">Rp${cart.format_currency(subtotal)}</div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </a>
+ % endfor
+ </td></tr>
- <tr><td style="padding-bottom: 16px;">Kami juga ingin memberitahu Anda bahwa kami menyediakan layanan pelanggan yang siap membantu jika Anda memiliki pertanyaan atau memerlukan bantuan dalam proses pembayaran. Jangan ragu untuk menghubungi kami melalui email ini atau nomor layanan pelanggan kami yang tertera di situs.</td></tr>
- <tr><td style="padding-bottom: 16px;">Terima kasih atas perhatian Anda dan kesempatan untuk melayani Anda. Kami berharap dapat segera melihat Anda menyelesaikan pembelian Anda.</td></tr>
+ <tr><td style="padding-bottom: 16px;">Kami juga ingin memberitahu Anda bahwa kami menyediakan layanan pelanggan yang siap membantu jika Anda memiliki pertanyaan atau memerlukan bantuan dalam proses pembayaran. Jangan ragu untuk menghubungi kami melalui email ini atau nomor layanan pelanggan kami yang tertera di situs.</td></tr>
+ <tr><td style="padding-bottom: 16px;">Terima kasih atas perhatian Anda dan kesempatan untuk melayani Anda. Kami berharap dapat segera melihat Anda menyelesaikan pembelian Anda.</td></tr>
- <tr><td style="padding-bottom: 2px;">Hormat kami,</td></tr>
- <tr><td style="padding-bottom: 2px;">PT. Indoteknik Dotcom Gemilang</td></tr>
- <tr><td style="padding-bottom: 2px;">sales@indoteknik.com</td></tr>
- <tr>
- <td style="text-align:center;">
- <hr width="100%"
- style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" />
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </table>
- </div>
+ <tr><td style="padding-bottom: 2px;">Hormat kami,</td></tr>
+ <tr><td style="padding-bottom: 2px;">PT. Indoteknik Dotcom Gemilang</td></tr>
+ <tr><td style="padding-bottom: 2px;">sales@indoteknik.com</td></tr>
+ <tr>
+ <td style="text-align:center;">
+ <hr width="100%"
+ style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td></tr>
+ </table>
</field>
</record>