Me gustaría otorgar un punto de usuario al propietario del producto en la cantidad del precio del producto después de que se venda un producto.
Para esto definí una regla de la siguiente manera:
Eventos: completar el proceso de pago
Acciones: Loop (
commerce-order:commerce-line-items
)
Y definí un componente de reglas de la siguiente manera:
Condiciones: Entidad dispone de campo (Entidad:
commerce-line-item
Field:commerce_product
)Acciones: Puntos permita a un usuario: (Usuario:
commerce-line-item:commerce-product:creator
,: Puntoscommerce-line-item:commerce-product:commerce-price:amount
)
Pero cuando guardo el componente genera este mensaje de error:
Selector de datos artículo-línea-comercio: producto-comercio: precio-comercio: la cantidad de puntos de parámetros no es válida.
¿Como puedo hacer eso?
fuente
Respuestas:
Al principio traté de responder a su pregunta usando reglas y userpoints módulo, pero vi que mientras que la adición de puntos de Grant a un usuario como una acción que no hay tal selector de datos para seleccionar el usuario que ha creado el producto. Encontré el selector de datos para seleccionar el usuario que es el propietario del pedido, pero ese no es su requisito. (Es por eso que aclaré esto en los comentarios).
Encontré una solución de módulo para su pregunta. El módulo usa hook_commerce_checkout_complete () . Desde la página de gancho:
Esta es la codificación del módulo que diseñé:
Archivo YOURMODULE.info :
ACTUALIZACIÓN Según lo sugerido por Clive , he cambiado el archivo del módulo para que este módulo personalizado también funcione con sitios multilingües.
Archivo YOURMODULE.module :
Enlaces de referencia:
userpoints_userpointsapi ($ params)
comercio_checkout API
commerce_line_item_load ($ line_item_id)
commerce_product_load ($ product_id)
Puntos de usuario: deduzca puntos mediante programación
commerce_currency_amount_to_decimal ()
fuente
field_get_items()
para recuperar$order->commerce_line_items
, de esa manera esto también funcionará con sitios multilingüesComo alternativa a la respuesta anterior, que requiere un código personalizado, es posible que desee probar la alternativa que se describe a continuación para evitar ese mensaje de error ...
Su pregunta parece ser una variación (no un duplicado) de la pregunta " ¿Cómo otorgar al Usuario Puntos de Usuario iguales al valor de cierto campo / valor calculado? ". Similar a la respuesta aceptada a esa pregunta, intente adaptar su componente de reglas de la siguiente manera:
Agregue estas acciones de reglas adicionales antes de la acción de reglas en su componente de reglas que causa el error:
commerce-line-item:commerce-product:commerce-price:amount
. Supongamos que nombra esa variableprice_amount
.price_amount
variable a entero . Supongamos que nombra ese resultado de conversiónamount_of_points
.amount_of_points
.PD 1: Tal "Convertir tipo de datos" es simplemente una cuestión de cómo funcionan las Reglas (por diseño), por lo que tampoco debe considerarse como un error ...
PD 2: supongo que tu pregunta es sobre D7.
fuente