如何更新客户上购物车价格并添加折扣,然后让他们结账? -- 7 领域 和 commerce 领域 drupal 相关 的问题

How do I update customers cart prices and add discount and then let them checkout?


1
vote

问题

中文

我正在使用Drupal 7 Commerce和Commerce折扣,其中许多其他人。

所以用例是这个。我们经常会查询包含许多产品的批量订单。我们希望我们的客户进入网站并将他们想要的购物车添加到购物车中。作为管理员我想打开未付的购物车,编辑产品价格并申请固定的价格折扣。然后,当客户刷新他们的购物车时,他们将看到我们的修正案并继续付款。这可能吗?我错过了一些明显的东西吗?

目前我可以编辑购物车中的订单,但是当客户刷新他们的购物车时,订单将恢复恢复到我的更改之前。我无法编辑订单尚未完成的产品价格。一旦进入完成状态,我可以调整产品价格并添加折扣。

要将固定价格折扣功能获取工作,我必须从行项目管理器小部件转移到多个内联实体引用。在订单上的行项目字段。在此之前,我根本无法使用固定的价格折扣功能。

将非常感谢任何帮助。我必须表演错误的搜索或其他东西。

英文原文

I'm using Drupal 7 Commerce and Commerce discount, amongst many others.

So the use case is this. We often get enquiries for bulk orders containing many products. We want our customer to go to the website and add what they want into their cart. As admin I want to open that unpaid cart, edit product prices and apply a Fixed Price Discount. Then when the customer refreshes their cart they will see our amendments and continue with payment. Is this possible? Am I missing something obvious?

At present I can edit a order that is in the cart but when the customer refreshes their cart the order is reverted back to prior my changes. I can't edit product prices at all whilst the order isn't completed. Once in Completed status, I can tweak product prices and add the discount.

To get the Fixed price discount feature to work I had to switch from the Line Item Manager widget over to Multiple Inline Entity References. For the line items field on orders that is. Before that I couldn't use the Fixed price discount feature at all.

Any help would be greatly appreciated. I must be performing the wrong searches or something.

     

回答列表

0
 
vote
vote
最佳答案
 

这里没有很多好的解决方案,因为你正在抗拒定价系统的局限性。您有两个基本选项:包含特殊定价的自定义线项字段与定价规则配对,该规则覆盖默认产品价格或某些折扣组合,可仅针对该用户调整产品价格。前者可能是一项挑战,因为我不记得我们是否完全充分地确定了管理线项,而后者将是具有很多不同产品的订单的痛苦。

商业价格列表最终是为了处理这样的情况,价格列表可以根据每个用户/数量的基础分配。它看起来与D7中的功能集合有效,但它将在价格列表处于活动状态时向客户访问此定价,而不仅仅是一个单一的顺序。如果这没问题,那可能是你的解决方案。

 

There aren't many good solutions here, because you're hitting up against the limitations of the pricing system. You have two basic options: custom line item fields that contain special pricing paired with a pricing rule that overrides the default product price or some combination of discounts that adjust product prices solely for that user. The former may be a challenge, because I can't remember if we ever fully got Inline Entity Form to manage line items, and the latter would be a pain for orders with a lot of different products.

The Commerce Price List module was ultimately developed to handle situations like this, where price lists can be assigned on a per user / quantity basis. It appears the same feature set works in D7 as in D8, but it would give the customer access to that pricing on any order while the price list was active, not just a single one. If that's no problem, then that's probably your solution.

 
 
         
         
0
 
vote

这个

有几个步骤

1)在产品线项上创建自定义字段。使用"价格" 字段类型。我打电话给它"折扣单价" 。
2)在您的订单实体行项目字段窗口小部件上,您需要"多个内联实体引用" 。这允许您编辑自定义字段。
3)创建定价规则
事件:计算产品的售价
条件: 1)"实体有字段" 并选择我们的新字段。 2)检查否定框的"数据值为空" 。换句话说,如果字段不为空,我们感兴趣。
行动:"将单价设置为特定金额" 。输入新字段的令牌。我使用"数量" 不是"金额 - 十进制。"
4)在管理员创建或更新订单时,创建第二条规则以重新应用定价规则 事件:"在更新现有商务单后" 保存新的商业单位"
条件:"用户有角色" 。选择您的管理员角色。
行动:"执行自定义PHP代码" (您需要启用"PHP过滤器" 模块)。输入"Commerce_cart_order_refresh([Commerce-Order:Order-ID]);"
5)为了向客户发送与折扣价格的付款链接,安装这个小模块: https:/ /github.com/sjsam/drupal-mopl 。下载zip文件夹时,您将要将文件夹名称更改为"MOPL" 。

为了使用这个:
1)创建新订单或更新现有订单。
2)将您的折扣价格设置在新领域。
3)将状态设置为"结帐:结帐" 。

客户现在将获取链接以单击以完成结帐。

如果他们先填充了他们的购物车。相应地编辑并保存订单。当他们刷新页面时,他们的购物车价格将获得更新。

在问题中,我还想从折扣模块中添加固定的价格折扣。当客户完成结账时,我无法解决如何使用"固定价格折扣" 。所以我创建了一个名为折扣的产品,并将价格设置为零。然后,我将该产品添加到购物车并将折扣单价设置为我想要IE -300的折扣。

此时客户可以返回购物车页并更新折扣产品的数量。所以我添加了一个过滤器来排除"折扣" 产品。

就是这样!

 

There was a few steps to this

1) Create a custom field on your product line items. Use a "price" field type. I called it "Discount unit price".
2) On your order entity line item field widget, you'll need the "Multiple Inline Entity References." This allows you to edit your custom field.
3) Create a pricing rule
xc2xa0xc2xa0xc2xa0Event: Calculating the sell price of a product
xc2xa0xc2xa0xc2xa0Conditions: 1) "Entity has field" and select our new field. 2) "Data value is empty" with the negate box checked. In other words we're interested if the field is not empty.
xc2xa0xc2xa0xc2xa0Action: "Set the unit price to a specific amount". Enter the token for your new field. I used "amount" not "amount-decimal."
4) Create a 2nd rule to re-apply pricing rules when admins create or update a order
xc2xa0xc2xa0xc2xa0Event: "After saving a new commerce order", "After updating an existing commerce order"
xc2xa0xc2xa0xc2xa0Conditions: "User has roles". Select your admin roles.
xc2xa0xc2xa0xc2xa0Action: "Execute custom PHP code" (you need "php filter" module enabled). Enter this "commerce_cart_order_refresh([commerce-order:order-id]);"
5) In order to send the customer a payment link with the discounted prices, install this small module: https://github.com/sjsam/Drupal-MOPL. When you download the zip folder, you'll want to change the folder name to "mopl".

In order to use this:
1) Create a new order or update a existing order.
2) Set your discounted prices in your new field.
3) Set the status to "Checkout: checkout".

The customer will now get a link to click in order to complete the checkout.

If they have populated their cart first. Edit it accordingly and save the order. When they refresh the page their cart prices will get updated.

In the question I also wanted to add a fixed price discount from the discount module. I couldn't work out how to have the "Fixed price discount" applied when the customer completes checkout. So I created a product called Discount and set the price to zero. I then add that product to the cart and set the discounted unit price to the discount I want ie -300.

At this point the customer could go back to the Shopping cart page and update the qty for the discount product. So I added a filter to exclude the "discount" product.

That's it!

 
 

相关问题

0  节点ID后URL中的文本  ( Text in url after the node id ) 
我发现了我的drupal上的网址中的一些奇怪。我可以在节点ID和页面显示后添加文本。示例: https://www.drupal.org/node/11111 返回与相同 https://www.drupal.org/node/11111/thisisatest 如何避免这种情况,因为这开始由Googl...

0  hook_node_update不工作  ( Hook node update not working ) 
我在我的自定义模块中放置了以下功能。 function MYMODULE_node_update($node) { if ($node->type === 'page') { $node->title = 'test'; } } 在编辑和保存内容类型页面的节点时,没有任何发生。什么可能是这个...

0  如何编程方式清除/刷新模块文件缓存?  ( How to programmatically clear refresh module file cache ) 
我正在维护一个模块,并重新制作了模块的文件结构,使其更加...模块化。 在更新函数中,引用了一些新文件,但Drupal不知道新文件,直到缓存已清除。文件包含在.info文件中。 请有人告诉我如何让drupal刷新它在本模块中的文件列表? 谢谢, [侧面笔记 - 非常惊讶的是,钩子和缓存不可用作标签!] ...

0  更改字段实例显示View_Mode的设置设置  ( Changing field instance display settings for view mode ) 
背景 在user.module文件中 user_build_content() 中,有一条线为给定视图_mode添加字段: $account->content += field_attach_view('user', $account, $view_mode, $langcode); field_att...

0  Cron超时时间为60秒,但所有相关的超时都设置得更高  ( Cron timeouts at 60 seconds but all the related timeouts are set higher ) 
我们在60秒内从Drupal 7站点上获得504个网关超时,但Afaik的一切都大于那个。超时在于在最终Cron中运行Feeds_source_import期间。 我们有一个NLB,两个TCP听众转发到ALB的IPS。根据文档,NLB的超时为TCP连接的时间为350秒。 https://文档。 aws.amazon...

0  如何禁用某个内容类型和某个角色的编辑  ( How disable edit for a certain content type and a certain role ) 
在一个Drupal 7网站中,我已经被提供维护,似乎权限似乎没有按预期工作。我检查并取消选中某个用户角色的按钮,但是该用户角色始终有权编辑属于此特定类型的任何节点。 1.这可能是这个原因? 2.如果这不是从GUI工作,我如何实现类似于代码的东西? 我会喜欢一个例子 ...

0  如何在规则组件中设置所有日期值  ( How to set all day date value in a rules component ) 
我有一个带日期字段的节点设置为2020年2月8日,但是当我尝试将日期值设置为"要比较" 但日期/小时不断变化时。如何为整天设置数据值? drupal 7.69 规则7.x-2.12 ...

0  如何将自定义模块添加到菜单?  ( How to add a custom module to a menu ) 
我正在使用drupal 7.我刚刚建立了一个精彩的自定义模块。现在我需要将它添加到我的主菜单下,父项"工具和资源" 。 我知道我可以去主页,然后点击小装备并转到"列表链接" ,将我带到管理/结构/菜单/管理/主菜单/列表?目的地=节点,我可以点击小罗盘上的 - 持有并在所需的地方拖放我的模块。但是,有没有办法通过模块...

0  字段在用户编辑表单中获取未命令并失败  ( Field gets unset and fails validation in user edit form ) 
我们有一个特殊的日期字段,我们在提交的自定义用户表单时我们在用户创建时设置。用户不必自行设置此字段。 我们有一个单独的形式,它是一个用户编辑表单。我们使用 form_alter() 挂钩构建此表单,该挂钩查找默认用户注册表。 出于某种原因,即使此特殊日期字段隐藏在此表单上,验证也会抵御它,就像表单已被提交的空白值一样...

1  显示访客的正确方法是什么?  ( What is the proper way to show a visitor an error ) 
我正在使用一个自定义提交处理程序 在这些情况下,我不希望用户在没有的情况下思考他们的表格成功提交。如何使用自定义错误页面覆盖确认页面?我尝试了 drupal_set_message() ,但它没有显示在我可以看到的确认页面上的任何位置。 理想情况下,我还能够恢复由 watchdog logging生成的事件ID,以...

0  robots.txt编码问题  ( Robots txt encoding issue ) 
我负责我公司的网站,它现在运行Drupal 7.66(PHP 5.3.3),几年。自几个月以来,我发现了有关robots.txt文件的奇怪行为。在某些情况下,编码完全搞砸了。 以下是问题的简要说明: 如果我连接到网站:没问题,robots.txt文件很好地显示在浏览器中 如果我没有连接到网站(如我们所有的用户和搜索...

0  Drupal网站从FreeBSD 12迁移到Ubuntu 18.04 SQL数据库未知行为  ( Drupal site migration from freebsd 12 to ubuntu 18 04 sql database unknown behav ) 
我目前正在尝试将Drupal网站从FreeBSD 12迁移到Ubuntu 18.04。所有配置都被复制并移动到Ubuntu 18.04。一切似乎都很好,我能够用Ubuntu 18.04创建Drupal网站,但只要我清除新网站上的缓存,似乎页面设置消失,内容到处都是。此外,最新内容也被删除。我通常使用mysqldump...

0  阻止任何属于有机组的用户,以便使用代码访问其组外的任何节点  ( Prevent any user that doesnot belong to an organic group to access any node out ) 
我已经制作了以下自定义模块,以防止属于组1的任何用户,能够查看或编辑属于组的节点2.仍然是知道节点的URL,管理要查看它无论他属于哪个群体,更重要,编辑它。此处发布的任何其他问题的任何相似性都只是巧合,还要提到每个节点属于一个且仅组。 我在下面的代码中做错了什么? <?php /** * ...

0  如何配置重复节点结账支付?  ( How do i configure the recurring node checkout payment ) 
在过去几年中,我使用Commerce节点结帐在用户结账完成后发布节点。现在我想自动,当他们的节点已过期时向用户充电。 如何将节点链接到重复产品,因此在节点每月到期时发生重复付款? ...

0  常见的。inc在新下载的drupal 7.69中错误  ( Common inc error in newly downloaded drupal 7 69 ) 
我刚下载Drupal 7.69并试图配置它。它给了我一个充满相同错误的页面: 注意:尝试访问intain_children()类型int类型int的数组偏移量(/ amplications/mamp/htdocs/ksnew/includes/common.inc的第6656行)。 这是common.inc中的代...

1  分类学期组内容,但随后还列出了每一行中的所有术语  ( Group content by taxonomy term but then also list all terms in each row ) 
我正在寻找创建视图的帮助。 我有一个内容类型,事情。事情有一个领域,您可以在分类,类别中选择多个术语。我希望我的观点看起来像这样: 类别1 事物1 第1类 第2类 事物2 第1类 第3类 类别2 事1 第1类 第2类 所以基本上,我想按照条款进行组,然后列出每件事下面...

-1  记住/缓存'用户角色'for portal:如何配置?  ( Remember cache user role for portal how to configure ) 
我计划为每个用户类型,即学生,员工成员等设置不同的"门户" 。我想提示用户选择它们的类型,然后在将来的信息缓存,以便它们不必每次选择它们的类型。下次他们去我的网站时,他们被显示(重定向到?)他们的特定门户网站,其中包含与它们相关的链接/信息。门户网站应包含一个完整的菜单结构,可能对每个用户类型不同,但对于多个用户类型...

0  基于关联项的同一菜单的多个版本?  ( Multiple versions of the same menu based on associated term ) 
我正在尝试创建一个不同的门户网站。每个门户都将显示内容过滤到该人的用户标记,即学生,员工等。它很容易创建一个显示具有该用户标记(分类学期)的节点的视图,但我希望有一个特定于用户标签的菜单。我的菜单结构中的许多项目都适用于多个用户标记,其中一些只有一个或另一个。如何使用门户页面显示一个菜单,该菜单仅包含具有相应标记的节...

0  包含包含空字段值的计数聚合  ( Aggregation with count that includes empty field values ) 
我看到了关于聚合的其他问题,但我没有找到类似于我需要的东西。 我有一个通过启用聚合的视图,结果由字段值(文本字段)分组,也与该字段的计数进行分组。 一切都好,但我想包括空值的数量,我不能让这件事工作...... 现在我有类似的东西 | FIELD VALUE | COUNT | |-------------...

0  sessxxxxx cookie被删除,$ _session数据丢失但只有在本地  ( Sessxxxxx cookie gets removed session data being lost but only locally ) 
我刚刚将部署的代码下载到我的本地设置,重新启动的MAMP,清除了疏浚缓存,并启动了一个依赖于$ _session的数据的进程。我们可以在PROS中确认此作品 - 在任何一个过程中的$ _ssession中没有任何数据丢失的三个步骤。 但是,当我从步骤1提交数据并在本地转到第二步时,数据从$ _session消失。我在...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.