diff --git a/README.md b/README.md new file mode 100644 index 000000000..28366b1de --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Adyen Payment plugin for Hybris 5.5 + +Hybris is a Java based eCommerce framework built on the Spring MVC framework. The purpose of providing a plugin for Adyen is to aid integration of the Adyen payment gateway into a hybris implementation. Because Hybris is built on the Spring framework this makes it highly customizable and extensible. The plugin also utilizes this framework so can also easily be extended to add specific behavior if required. + +## Requirements + +This extension support version 5.5 of Hybris. +Hybris 5.1 is running on Java 8. + +## Installation + +1. Download the 2.0.0 release +2. Unzip the file to the ${HYBRIS_HOME} directory. +3. Re-build Hybris by running “ant clean all” command from ${HYBRIS_HOME}/bin/platform. +4. Start Hybris server by running “hybrisserver.sh” from ${HYBRIS_HOME}/bin/platform. +5. Initialize the platform from HAC. + * Full initialization will remove all data. If this is not acceptable an update can be done instead. However, there is data loaded during the initialization/update that is required for the integration to function correctly. + +## Usage & Documentation + +This is described in the documentation inside the document folder of this repository + +## Licence + +Mention the relevant license (MIT). \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/.classpath b/bin/custom/adyen/adyenAddon/.classpath new file mode 100644 index 000000000..f3401bb50 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.classpath @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/.externalToolBuilders/HybrisCodeGeneration.launch b/bin/custom/adyen/adyenAddon/.externalToolBuilders/HybrisCodeGeneration.launch new file mode 100644 index 000000000..0d81762dd --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.externalToolBuilders/HybrisCodeGeneration.launch @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/.pmd b/bin/custom/adyen/adyenAddon/.pmd new file mode 100644 index 000000000..19fd0e48c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.pmd @@ -0,0 +1,7 @@ + + + true + ruleset.xml + false + true + diff --git a/bin/custom/adyen/adyenAddon/.project b/bin/custom/adyen/adyenAddon/.project new file mode 100644 index 000000000..f41ade3d3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.project @@ -0,0 +1,39 @@ + + + adyenAddon + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full, + + + LaunchConfigHandle + <project>/.externalToolBuilders/HybrisCodeGeneration.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + net.sourceforge.pmd.eclipse.plugin.pmdBuilder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + net.sourceforge.pmd.eclipse.plugin.pmdNature + + diff --git a/bin/custom/adyen/adyenAddon/.settings/org.eclipse.core.resources.prefs b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.core.prefs b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e0ae6d475 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,353 @@ +#Thu Apr 23 13:25:26 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=error +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,NORMAL,HIGH,NORMAL,LOW +org.eclipse.jdt.core.compiler.taskTags=YTODO,TODO,FIXME,XXX,DOCTODO +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=2 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=120 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=3 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=130 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=50 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=mixed +org.eclipse.jdt.core.formatter.tabulation.size=3 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.ui.prefs b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..9bcee553f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,75 @@ +#Tue Feb 03 16:09:22 CET 2009 +comment_clear_blank_lines=true +comment_format_comments=true +comment_format_header=false +comment_format_html=true +comment_format_source_code=true +comment_indent_parameter_description=true +comment_indent_root_tags=true +comment_line_length=160 +comment_new_line_for_parameter=false +comment_separate_root_tags=true +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=de.hybris;java;javax;org;com;de; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=50 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=50 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.beans.core.prefs b/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.beans.core.prefs new file mode 100644 index 000000000..7f9d66ec0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.beans.core.prefs @@ -0,0 +1,3 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false diff --git a/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.core.prefs b/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.core.prefs new file mode 100644 index 000000000..b3ca37e0d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.settings/org.springframework.ide.eclipse.core.prefs @@ -0,0 +1,39 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true +org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true +org.springframework.ide.eclipse.core.enable.project.preferences=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true diff --git a/bin/custom/adyen/adyenAddon/.springBeans b/bin/custom/adyen/adyenAddon/.springBeans new file mode 100644 index 000000000..98fae834d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + resources/adyenAddon-spring.xml + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryAddressCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryAddressCheckoutStepValidator.java new file mode 100644 index 000000000..38fd2c3e2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryAddressCheckoutStepValidator.java @@ -0,0 +1,40 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + + +public class DefaultDeliveryAddressCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + return ValidationResults.REDIRECT_TO_CART; + } + + if (!getCheckoutFacade().hasShippingItems()) + { + return ValidationResults.REDIRECT_TO_PICKUP_LOCATION; + } + + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryMethodCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryMethodCheckoutStepValidator.java new file mode 100644 index 000000000..c6b7cd8c1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultDeliveryMethodCheckoutStepValidator.java @@ -0,0 +1,59 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class DefaultDeliveryMethodCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (!getCheckoutFacade().hasShippingItems()) + { + return ValidationResults.REDIRECT_TO_PICKUP_LOCATION; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + return ValidationResults.SUCCESS; + } + + @Override + public ValidationResults validateOnExit() + { + if (getCheckoutFacade().hasPickUpItems()) + { + return ValidationResults.REDIRECT_TO_PICKUP_LOCATION; + } + return ValidationResults.SUCCESS; + } + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultMultiStepCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultMultiStepCheckoutStepValidator.java new file mode 100644 index 000000000..c18b103a1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultMultiStepCheckoutStepValidator.java @@ -0,0 +1,38 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.commercefacades.order.data.CartData; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class DefaultMultiStepCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + if (cartData.getEntries() != null && !cartData.getEntries().isEmpty()) + { + return (getCheckoutFacade().hasShippingItems()) ? ValidationResults.SUCCESS + : ValidationResults.REDIRECT_TO_PICKUP_LOCATION; + } + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.FAILED; + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPaymentCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPaymentCheckoutStepValidator.java new file mode 100644 index 000000000..48df51ccc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPaymentCheckoutStepValidator.java @@ -0,0 +1,49 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class DefaultPaymentCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryMethod.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_METHOD; + } + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPickupCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPickupCheckoutStepValidator.java new file mode 100644 index 000000000..35c75974f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultPickupCheckoutStepValidator.java @@ -0,0 +1,49 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class DefaultPickupCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryMethod.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_METHOD; + } + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultSummaryCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultSummaryCheckoutStepValidator.java new file mode 100644 index 000000000..fe82942ce --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/DefaultSummaryCheckoutStepValidator.java @@ -0,0 +1,70 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.commercefacades.order.data.CartData; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class DefaultSummaryCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryMethod.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_METHOD; + } + + if (getCheckoutFlowFacade().hasNoPaymentInfo()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.paymentDetails.notprovided"); + return ValidationResults.REDIRECT_TO_PAYMENT_METHOD; + } + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + + if (!getCheckoutFacade().hasShippingItems()) + { + cartData.setDeliveryAddress(null); + } + + if (!getCheckoutFacade().hasPickUpItems() && cartData.getDeliveryMode().getCode().equals("pickup")) + { + return ValidationResults.REDIRECT_TO_PICKUP_LOCATION; + } + + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryAddressCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryAddressCheckoutStepValidator.java new file mode 100644 index 000000000..5aa18352e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryAddressCheckoutStepValidator.java @@ -0,0 +1,40 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + + +public class ResponsiveDeliveryAddressCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + return ValidationResults.REDIRECT_TO_CART; + } + + if (!getCheckoutFacade().hasShippingItems()) + { + return ValidationResults.REDIRECT_TO_PAYMENT_METHOD; + } + + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryMethodCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryMethodCheckoutStepValidator.java new file mode 100644 index 000000000..4c2533fd0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveDeliveryMethodCheckoutStepValidator.java @@ -0,0 +1,49 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class ResponsiveDeliveryMethodCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFacade().hasShippingItems() && getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (!getCheckoutFacade().hasShippingItems() && getCheckoutFlowFacade().hasPickUpItems()) + { + return ValidationResults.REDIRECT_TO_PAYMENT_METHOD; + } + + return ValidationResults.SUCCESS; + } + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveMultiStepCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveMultiStepCheckoutStepValidator.java new file mode 100644 index 000000000..cbac0d098 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveMultiStepCheckoutStepValidator.java @@ -0,0 +1,37 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.commercefacades.order.data.CartData; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class ResponsiveMultiStepCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + if (cartData.getEntries() != null && !cartData.getEntries().isEmpty()) + { + return ValidationResults.SUCCESS; + } + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.FAILED; + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsivePaymentCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsivePaymentCheckoutStepValidator.java new file mode 100644 index 000000000..ba18fa2e9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsivePaymentCheckoutStepValidator.java @@ -0,0 +1,49 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class ResponsivePaymentCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryMethod.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_METHOD; + } + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveSummaryCheckoutStepValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveSummaryCheckoutStepValidator.java new file mode 100644 index 000000000..9ba2815df --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/checkout/steps/validation/impl/ResponsiveSummaryCheckoutStepValidator.java @@ -0,0 +1,70 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.checkout.steps.validation.impl; + +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.AbstractCheckoutStepValidator; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.commercefacades.order.data.CartData; + +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public class ResponsiveSummaryCheckoutStepValidator extends AbstractCheckoutStepValidator +{ + @Override + public ValidationResults validateOnEnter(final RedirectAttributes redirectAttributes) + { + if (!getCheckoutFlowFacade().hasValidCart()) + { + LOG.info("Missing, empty or unsupported cart"); + return ValidationResults.REDIRECT_TO_CART; + } + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryAddress.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.deliveryMethod.notprovided"); + return ValidationResults.REDIRECT_TO_DELIVERY_METHOD; + } + + if (getCheckoutFlowFacade().hasNoPaymentInfo()) + { + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.INFO_MESSAGES_HOLDER, + "checkout.multi.paymentDetails.notprovided"); + return ValidationResults.REDIRECT_TO_PAYMENT_METHOD; + } + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + + if (!getCheckoutFacade().hasShippingItems()) + { + cartData.setDeliveryAddress(null); + } + + if (!getCheckoutFacade().hasPickUpItems() && cartData.getDeliveryMode().getCode().equals("pickup")) + { + return ValidationResults.REDIRECT_TO_DELIVERY_ADDRESS; + } + + return ValidationResults.SUCCESS; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/AdyenAddonWebConstants.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/AdyenAddonWebConstants.java new file mode 100644 index 000000000..685463242 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/AdyenAddonWebConstants.java @@ -0,0 +1,30 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.constants; + +/** + * Global class for all AdyenAddon web constants. You can add global constants for your extension into this class. + */ +public final class AdyenAddonWebConstants +{ + //Dummy field to avoid pmd error - delete when you add the first real constant! + public static final String deleteThisDummyField = "DELETE ME"; + + private AdyenAddonWebConstants() + { + //empty to avoid instantiating this constant class + } + + // implement here constants used by this extension +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/B2ccheckoutaddonWebConstants.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/B2ccheckoutaddonWebConstants.java new file mode 100644 index 000000000..01c43a736 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/constants/B2ccheckoutaddonWebConstants.java @@ -0,0 +1,44 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package de.hybris.platform.storefront.constants; + +/** + * Global class for all B2ccheckoutaddon web constants. You can add global constants for your extension into this class. + */ +public final class B2ccheckoutaddonWebConstants +{ + //Dummy field to avoid pmd error - delete when you add the first real constant! + public static final String deleteThisDummyField = "DELETE ME"; + + private B2ccheckoutaddonWebConstants() + { + //empty to avoid instantiating this constant class + } + + + public static final String MODEL_KEY_ADDITIONAL_BREADCRUMB = "additionalBreadcrumb"; + + public static final String BREADCRUMBS_KEY = "breadcrumbs"; + + public static final String CONTINUE_URL = "session_continue_url"; + + public static final String CART_RESTORATION = "cart_restoration"; + + public static final String ANONYMOUS_CHECKOUT="anonymous_checkout"; + + public static final String URL_ENCODING_ATTRIBUTES="encodingAttributes"; + + public static final String LANGUAGE_ENCODING="languageEncoding"; + + public static final String CURRENCY_ENCODING="currencyEncoding";} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/AdyenAddonControllerConstants.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/AdyenAddonControllerConstants.java new file mode 100644 index 000000000..013c749b1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/AdyenAddonControllerConstants.java @@ -0,0 +1,21 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers; + +/** + */ +public interface AdyenAddonControllerConstants +{ + // implement here controller constants used by this extension +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/cms/dummy.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/cms/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/AbstractCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/AbstractCheckoutStepController.java new file mode 100644 index 000000000..184652ba8 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/AbstractCheckoutStepController.java @@ -0,0 +1,244 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorfacades.payment.PaymentFacade; +import de.hybris.platform.acceleratorservices.customer.CustomerLocationService; +import de.hybris.platform.acceleratorstorefrontcommons.breadcrumb.ResourceBreadcrumbBuilder; +import de.hybris.platform.acceleratorstorefrontcommons.breadcrumb.impl.ContentPageBreadcrumbBuilder; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutGroup; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractCheckoutController; +import de.hybris.platform.acceleratorstorefrontcommons.forms.validation.AddressValidator; +import de.hybris.platform.acceleratorstorefrontcommons.forms.validation.PaymentDetailsValidator; +import de.hybris.platform.acceleratorstorefrontcommons.forms.verification.AddressVerificationResultHandler; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.order.CartFacade; +import de.hybris.platform.commercefacades.product.ProductFacade; +import de.hybris.platform.commercefacades.user.data.CountryData; +import de.hybris.platform.commercefacades.user.data.TitleData; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang.StringUtils; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; + + +public abstract class AbstractCheckoutStepController extends AbstractCheckoutController implements CheckoutStepController +{ + protected static final String MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL = "multiStepCheckoutSummary"; + protected static final String REDIRECT_URL_ADD_DELIVERY_ADDRESS = REDIRECT_PREFIX + "/checkout/multi/delivery-address/add"; + protected static final String REDIRECT_URL_CHOOSE_DELIVERY_METHOD = REDIRECT_PREFIX + "/checkout/multi/delivery-method/choose"; + protected static final String REDIRECT_URL_ADD_PAYMENT_METHOD = REDIRECT_PREFIX + "/checkout/multi/payment-method/add"; + protected static final String REDIRECT_URL_SUMMARY = REDIRECT_PREFIX + "/checkout/multi/summary/view"; + protected static final String REDIRECT_URL_CART = REDIRECT_PREFIX + "/cart"; + protected static final String REDIRECT_URL_ERROR = REDIRECT_PREFIX + "/checkout/multi/hop/error"; + + @Resource(name = "paymentDetailsValidator") + private PaymentDetailsValidator paymentDetailsValidator; + + @Resource(name = "accProductFacade") + private ProductFacade productFacade; + + @Resource(name = "multiStepCheckoutBreadcrumbBuilder") + private ResourceBreadcrumbBuilder resourceBreadcrumbBuilder; + + @Resource(name = "paymentFacade") + private PaymentFacade paymentFacade; + + @Resource(name = "addressValidator") + private AddressValidator addressValidator; + + @Resource(name = "customerLocationService") + private CustomerLocationService customerLocationService; + + @Resource(name = "cartFacade") + private CartFacade cartFacade; + + @Resource(name = "addressVerificationResultHandler") + private AddressVerificationResultHandler addressVerificationResultHandler; + + @Resource(name = "contentPageBreadcrumbBuilder") + private ContentPageBreadcrumbBuilder contentPageBreadcrumbBuilder; + + @Resource(name = "checkoutFlowGroupMap") + private Map checkoutFlowGroupMap; + + + @ModelAttribute("titles") + public Collection getTitles() + { + return getUserFacade().getTitles(); + } + + @ModelAttribute("countries") + public Collection getCountries() + { + return getCheckoutFacade().getDeliveryCountries(); + } + + @ModelAttribute("countryDataMap") + public Map getCountryDataMap() + { + final Map countryDataMap = new HashMap(); + for (final CountryData countryData : getCountries()) + { + countryDataMap.put(countryData.getIsocode(), countryData); + } + return countryDataMap; + } + + @ModelAttribute("checkoutSteps") + public List addCheckoutStepsToModel() + { + final CheckoutGroup checkoutGroup = getCheckoutFlowGroupMap().get(getCheckoutFacade().getCheckoutFlowGroupForCheckout()); + final Map progressBarMap = checkoutGroup.getCheckoutProgressBar(); + final List checkoutSteps = new ArrayList(progressBarMap.size()); + + for (final Map.Entry entry : progressBarMap.entrySet()) + { + final CheckoutStep checkoutStep = entry.getValue(); + checkoutSteps.add(new CheckoutSteps(checkoutStep.getProgressBarId(), StringUtils.remove(checkoutStep.currentStep(), + "redirect:"), Integer.valueOf(entry.getKey()))); + } + return checkoutSteps; + } + + protected void prepareDataForPage(final Model model) throws CMSItemNotFoundException + { + model.addAttribute("isOmsEnabled", Boolean.valueOf(getSiteConfigService().getBoolean("oms.enabled", false))); + model.addAttribute("supportedCountries", getCartFacade().getDeliveryCountries()); + model.addAttribute("expressCheckoutAllowed", Boolean.valueOf(getCheckoutFacade().isExpressCheckoutAllowedForCart())); + model.addAttribute("taxEstimationEnabled", Boolean.valueOf(getCheckoutFacade().isTaxEstimationEnabledForCart())); + } + + protected CheckoutStep getCheckoutStep(final String currentController) + { + final CheckoutGroup checkoutGroup = getCheckoutFlowGroupMap().get(getCheckoutFacade().getCheckoutFlowGroupForCheckout()); + return checkoutGroup.getCheckoutStepMap().get(currentController); + } + + protected void setCheckoutStepLinksForModel(final Model model, final CheckoutStep checkoutStep) + { + model.addAttribute("previousStepUrl", StringUtils.remove(checkoutStep.previousStep(), "redirect:")); + model.addAttribute("nextStepUrl", StringUtils.remove(checkoutStep.nextStep(), "redirect:")); + model.addAttribute("currentStepUrl", StringUtils.remove(checkoutStep.currentStep(), "redirect:")); + model.addAttribute("progressBarId", checkoutStep.getProgressBarId()); + } + + protected Map getRequestParameterMap(final HttpServletRequest request) + { + final Map map = new HashMap(); + + final Enumeration myEnum = request.getParameterNames(); + while (myEnum.hasMoreElements()) + { + final String paramName = (String) myEnum.nextElement(); + final String paramValue = request.getParameter(paramName); + map.put(paramName, paramValue); + } + + return map; + } + + public static class CheckoutSteps + { + private final String progressBarId; + private final String url; + private final Integer stepNumber; + + public CheckoutSteps(final String progressBarId, final String url, final Integer stepNumber) + { + this.progressBarId = progressBarId; + this.url = url; + this.stepNumber = stepNumber; + } + + public String getProgressBarId() + { + return progressBarId; + } + + public String getUrl() + { + return url; + } + + public Integer getStepNumber() + { + return stepNumber; + } + } + + @Override + protected CartFacade getCartFacade() + { + return cartFacade; + } + + protected ProductFacade getProductFacade() + { + return productFacade; + } + + protected PaymentDetailsValidator getPaymentDetailsValidator() + { + return paymentDetailsValidator; + } + + protected ResourceBreadcrumbBuilder getResourceBreadcrumbBuilder() + { + return resourceBreadcrumbBuilder; + } + + protected PaymentFacade getPaymentFacade() + { + return paymentFacade; + } + + protected AddressValidator getAddressValidator() + { + return addressValidator; + } + + protected CustomerLocationService getCustomerLocationService() + { + return customerLocationService; + } + + protected AddressVerificationResultHandler getAddressVerificationResultHandler() + { + return addressVerificationResultHandler; + } + + public ContentPageBreadcrumbBuilder getContentPageBreadcrumbBuilder() + { + return contentPageBreadcrumbBuilder; + } + + public Map getCheckoutFlowGroupMap() + { + return checkoutFlowGroupMap; + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/CheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/CheckoutStepController.java new file mode 100644 index 000000000..2796b3ffd --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/CheckoutStepController.java @@ -0,0 +1,50 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commerceservices.order.CommerceCartModificationException; + +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +public interface CheckoutStepController +{ + /** + * Swapping the parameter order might break the validation aspect from working. + * + * @param model + * @param redirectAttributes + * @return returns the result for entering the checkout step + * @throws CMSItemNotFoundException + * @throws CommerceCartModificationException + */ + String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException, + CommerceCartModificationException; + + /** + * + * @param redirectAttributes + * @return checkoutstep link for navigating back + */ + String back(final RedirectAttributes redirectAttributes); + + /** + * + * @param redirectAttributes + * @return checkoutstep link for navigating next + */ + String next(final RedirectAttributes redirectAttributes); +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryAddressCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryAddressCheckoutStepController.java new file mode 100644 index 000000000..c23088c04 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryAddressCheckoutStepController.java @@ -0,0 +1,459 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.acceleratorstorefrontcommons.forms.AddressForm; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.address.data.AddressVerificationResult; +import de.hybris.platform.commercefacades.order.data.CartData; +import de.hybris.platform.commercefacades.user.data.AddressData; +import de.hybris.platform.commercefacades.user.data.CountryData; +import de.hybris.platform.commercefacades.user.data.RegionData; +import de.hybris.platform.commerceservices.address.AddressVerificationDecision; +import de.hybris.platform.storefront.controllers.ControllerConstants; +import de.hybris.platform.util.Config; + +import java.util.Set; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@Controller +@RequestMapping(value = "/checkout/multi/delivery-address") +public class DeliveryAddressCheckoutStepController extends AbstractCheckoutStepController +{ + private final static String DELIVERY_ADDRESS = "delivery-address"; + + @Override + @RequestMapping(value = "/add", method = RequestMethod.GET) + @RequireHardLogIn + @PreValidateCheckoutStep(checkoutStep = DELIVERY_ADDRESS) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + getCheckoutFacade().setDeliveryAddressIfAvailable(); + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + model.addAttribute("deliveryAddresses", getDeliveryAddresses(cartData.getDeliveryAddress())); + model.addAttribute("noAddress", Boolean.valueOf(getCheckoutFlowFacade().hasNoDeliveryAddress())); + model.addAttribute("addressForm", new AddressForm()); + model.addAttribute("showSaveToAddressBook", Boolean.TRUE); + prepareDataForPage(model); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.deliveryAddress.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + + @RequestMapping(value = "/add", method = RequestMethod.POST) + @RequireHardLogIn + public String add(final AddressForm addressForm, final BindingResult bindingResult, final Model model, + final RedirectAttributes redirectModel) throws CMSItemNotFoundException + { + getAddressValidator().validate(addressForm, bindingResult); + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + model.addAttribute("deliveryAddresses", getDeliveryAddresses(cartData.getDeliveryAddress())); + this.prepareDataForPage(model); + if (StringUtils.isNotBlank(addressForm.getCountryIso())) + { + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(addressForm.getCountryIso())); + model.addAttribute("country", addressForm.getCountryIso()); + } + + model.addAttribute("noAddress", Boolean.valueOf(getCheckoutFlowFacade().hasNoDeliveryAddress())); + model.addAttribute("showSaveToAddressBook", Boolean.TRUE); + + if (bindingResult.hasErrors()) + { + GlobalMessages.addErrorMessage(model, "address.error.formentry.invalid"); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + final AddressData newAddress = new AddressData(); + newAddress.setTitleCode(addressForm.getTitleCode()); + newAddress.setFirstName(addressForm.getFirstName()); + newAddress.setLastName(addressForm.getLastName()); + newAddress.setLine1(addressForm.getLine1()); + newAddress.setLine2(addressForm.getLine2()); + newAddress.setTown(addressForm.getTownCity()); + newAddress.setPostalCode(addressForm.getPostcode()); + newAddress.setBillingAddress(false); + newAddress.setShippingAddress(true); + if (addressForm.getCountryIso() != null) + { + final CountryData countryData = getI18NFacade().getCountryForIsocode(addressForm.getCountryIso()); + newAddress.setCountry(countryData); + } + if (addressForm.getRegionIso() != null && !StringUtils.isEmpty(addressForm.getRegionIso())) + { + final RegionData regionData = getI18NFacade().getRegion(addressForm.getCountryIso(), addressForm.getRegionIso()); + newAddress.setRegion(regionData); + } + + if (addressForm.getSaveInAddressBook() != null) + { + newAddress.setVisibleInAddressBook(addressForm.getSaveInAddressBook().booleanValue()); + if (addressForm.getSaveInAddressBook().booleanValue() && getUserFacade().isAddressBookEmpty()) + { + newAddress.setDefaultAddress(true); + } + } + else if (getCheckoutCustomerStrategy().isAnonymousCheckout()) + { + newAddress.setDefaultAddress(true); + newAddress.setVisibleInAddressBook(true); + } + + // Verify the address data. + final AddressVerificationResult verificationResult = getAddressVerificationFacade() + .verifyAddressData(newAddress); + final boolean addressRequiresReview = getAddressVerificationResultHandler().handleResult(verificationResult, newAddress, + model, redirectModel, bindingResult, getAddressVerificationFacade().isCustomerAllowedToIgnoreAddressSuggestions(), + "checkout.multi.address.updated"); + + if (addressRequiresReview) + { + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + + getUserFacade().addAddress(newAddress); + + final AddressData previousSelectedAddress = getCheckoutFacade().getCheckoutCart().getDeliveryAddress(); + // Set the new address as the selected checkout delivery address + getCheckoutFacade().setDeliveryAddress(newAddress); + if (previousSelectedAddress != null && !previousSelectedAddress.isVisibleInAddressBook()) + { // temporary address should be removed + getUserFacade().removeAddress(previousSelectedAddress); + } + + // Set the new address as the selected checkout delivery address + getCheckoutFacade().setDeliveryAddress(newAddress); + + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/edit", method = RequestMethod.GET) + @RequireHardLogIn + public String editAddressForm(@RequestParam("editAddressCode") final String editAddressCode, final Model model, + final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + final ValidationResults validationResults = getCheckoutStep().validate(redirectAttributes); + if (getCheckoutStep().checkIfValidationErrors(validationResults)) + { + return getCheckoutStep().onValidation(validationResults); + } + + AddressData addressData = null; + if (StringUtils.isNotEmpty(editAddressCode)) + { + addressData = getCheckoutFacade().getDeliveryAddressForCode(editAddressCode); + } + + final AddressForm addressForm = new AddressForm(); + final boolean hasAddressData = addressData != null; + if (hasAddressData) + { + addressForm.setAddressId(addressData.getId()); + addressForm.setTitleCode(addressData.getTitleCode()); + addressForm.setFirstName(addressData.getFirstName()); + addressForm.setLastName(addressData.getLastName()); + addressForm.setLine1(addressData.getLine1()); + addressForm.setLine2(addressData.getLine2()); + addressForm.setTownCity(addressData.getTown()); + addressForm.setPostcode(addressData.getPostalCode()); + addressForm.setCountryIso(addressData.getCountry().getIsocode()); + addressForm.setSaveInAddressBook(Boolean.valueOf(addressData.isVisibleInAddressBook())); + addressForm.setShippingAddress(Boolean.valueOf(addressData.isShippingAddress())); + addressForm.setBillingAddress(Boolean.valueOf(addressData.isBillingAddress())); + if (addressData.getRegion() != null && !StringUtils.isEmpty(addressData.getRegion().getIsocode())) + { + addressForm.setRegionIso(addressData.getRegion().getIsocode()); + } + } + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + model.addAttribute("deliveryAddresses", getDeliveryAddresses(cartData.getDeliveryAddress())); + if (StringUtils.isNotBlank(addressForm.getCountryIso())) + { + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(addressForm.getCountryIso())); + model.addAttribute("country", addressForm.getCountryIso()); + } + model.addAttribute("noAddress", Boolean.valueOf(getCheckoutFlowFacade().hasNoDeliveryAddress())); + model.addAttribute("edit", Boolean.valueOf(hasAddressData)); + model.addAttribute("addressForm", addressForm); + if (addressData != null) + { + model.addAttribute("showSaveToAddressBook", Boolean.valueOf(!addressData.isVisibleInAddressBook())); + } + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.deliveryAddress.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + + @RequestMapping(value = "/edit", method = RequestMethod.POST) + @RequireHardLogIn + public String edit(final AddressForm addressForm, final BindingResult bindingResult, final Model model, + final RedirectAttributes redirectModel) throws CMSItemNotFoundException + { + getAddressValidator().validate(addressForm, bindingResult); + if (StringUtils.isNotBlank(addressForm.getCountryIso())) + { + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(addressForm.getCountryIso())); + model.addAttribute("country", addressForm.getCountryIso()); + } + model.addAttribute("noAddress", Boolean.valueOf(getCheckoutFlowFacade().hasNoDeliveryAddress())); + + if (bindingResult.hasErrors()) + { + GlobalMessages.addErrorMessage(model, "address.error.formentry.invalid"); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + + final AddressData newAddress = new AddressData(); + newAddress.setId(addressForm.getAddressId()); + newAddress.setTitleCode(addressForm.getTitleCode()); + newAddress.setFirstName(addressForm.getFirstName()); + newAddress.setLastName(addressForm.getLastName()); + newAddress.setLine1(addressForm.getLine1()); + newAddress.setLine2(addressForm.getLine2()); + newAddress.setTown(addressForm.getTownCity()); + newAddress.setPostalCode(addressForm.getPostcode()); + newAddress.setBillingAddress(false); + newAddress.setShippingAddress(true); + if (addressForm.getCountryIso() != null) + { + final CountryData countryData = getI18NFacade().getCountryForIsocode(addressForm.getCountryIso()); + newAddress.setCountry(countryData); + } + if (addressForm.getRegionIso() != null && !StringUtils.isEmpty(addressForm.getRegionIso())) + { + final RegionData regionData = getI18NFacade().getRegion(addressForm.getCountryIso(), addressForm.getRegionIso()); + newAddress.setRegion(regionData); + } + + if (addressForm.getSaveInAddressBook() == null) + { + newAddress.setVisibleInAddressBook(true); + } + else + { + newAddress.setVisibleInAddressBook(Boolean.TRUE.equals(addressForm.getSaveInAddressBook())); + } + + newAddress.setDefaultAddress(getUserFacade().isAddressBookEmpty() || getUserFacade().getAddressBook().size() == 1 + || Boolean.TRUE.equals(addressForm.getDefaultAddress())); + + // Verify the address data. + final AddressVerificationResult verificationResult = getAddressVerificationFacade() + .verifyAddressData(newAddress); + final boolean addressRequiresReview = getAddressVerificationResultHandler().handleResult(verificationResult, newAddress, + model, redirectModel, bindingResult, getAddressVerificationFacade().isCustomerAllowedToIgnoreAddressSuggestions(), + "checkout.multi.address.updated"); + + if (addressRequiresReview) + { + if (StringUtils.isNotBlank(addressForm.getCountryIso())) + { + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(addressForm.getCountryIso())); + model.addAttribute("country", addressForm.getCountryIso()); + } + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + + if (StringUtils.isNotEmpty(addressForm.getAddressId())) + { + final AddressData addressData = getCheckoutFacade().getDeliveryAddressForCode(addressForm.getAddressId()); + if (addressData != null) + { + model.addAttribute("showSaveToAddressBook", Boolean.valueOf(!addressData.isVisibleInAddressBook())); + model.addAttribute("edit", Boolean.TRUE); + } + } + + return ControllerConstants.Views.Pages.MultiStepCheckout.AddEditDeliveryAddressPage; + } + + getUserFacade().editAddress(newAddress); + getCheckoutFacade().setDeliveryModeIfAvailable(); + getCheckoutFacade().setDeliveryAddress(newAddress); + + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/remove", method = + { RequestMethod.GET, RequestMethod.POST }) + @RequireHardLogIn + public String removeAddress(@RequestParam("addressCode") final String addressCode, final RedirectAttributes redirectModel, + final Model model) throws CMSItemNotFoundException + { + final AddressData addressData = new AddressData(); + addressData.setId(addressCode); + getUserFacade().removeAddress(addressData); + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.CONF_MESSAGES_HOLDER, "account.confirmation.address.removed"); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute("addressForm", new AddressForm()); + + return getCheckoutStep().currentStep(); + } + + @RequestMapping(value = "/select", method = RequestMethod.POST) + @RequireHardLogIn + public String doSelectSuggestedAddress(final AddressForm addressForm, final RedirectAttributes redirectModel) + { + final Set resolveCountryRegions = org.springframework.util.StringUtils.commaDelimitedListToSet(Config + .getParameter("resolve.country.regions")); + + final AddressData selectedAddress = new AddressData(); + selectedAddress.setId(addressForm.getAddressId()); + selectedAddress.setTitleCode(addressForm.getTitleCode()); + selectedAddress.setFirstName(addressForm.getFirstName()); + selectedAddress.setLastName(addressForm.getLastName()); + selectedAddress.setLine1(addressForm.getLine1()); + selectedAddress.setLine2(addressForm.getLine2()); + selectedAddress.setTown(addressForm.getTownCity()); + selectedAddress.setPostalCode(addressForm.getPostcode()); + selectedAddress.setBillingAddress(false); + selectedAddress.setShippingAddress(true); + final CountryData countryData = getI18NFacade().getCountryForIsocode(addressForm.getCountryIso()); + selectedAddress.setCountry(countryData); + + if (resolveCountryRegions.contains(countryData.getIsocode()) && addressForm.getRegionIso() != null + && !StringUtils.isEmpty(addressForm.getRegionIso())) + { + final RegionData regionData = getI18NFacade().getRegion(addressForm.getCountryIso(), addressForm.getRegionIso()); + selectedAddress.setRegion(regionData); + } + + if (addressForm.getSaveInAddressBook() != null) + { + selectedAddress.setVisibleInAddressBook(addressForm.getSaveInAddressBook().booleanValue()); + } + + if (Boolean.TRUE.equals(addressForm.getEditAddress())) + { + getUserFacade().editAddress(selectedAddress); + } + else + { + getUserFacade().addAddress(selectedAddress); + } + + final AddressData previousSelectedAddress = getCheckoutFacade().getCheckoutCart().getDeliveryAddress(); + // Set the new address as the selected checkout delivery address + getCheckoutFacade().setDeliveryAddress(selectedAddress); + if (previousSelectedAddress != null && !previousSelectedAddress.isVisibleInAddressBook()) + { // temporary address should be removed + getUserFacade().removeAddress(previousSelectedAddress); + } + + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.CONF_MESSAGES_HOLDER, "checkout.multi.address.added"); + + return getCheckoutStep().nextStep(); + } + + + /** + * This method gets called when the "Use this Address" button is clicked. It sets the selected delivery address on + * the checkout facade - if it has changed, and reloads the page highlighting the selected delivery address. + * + * @param selectedAddressCode + * - the id of the delivery address. + * + * @return - a URL to the page to load. + */ + @RequestMapping(value = "/select", method = RequestMethod.GET) + @RequireHardLogIn + public String doSelectDeliveryAddress(@RequestParam("selectedAddressCode") final String selectedAddressCode, + final RedirectAttributes redirectAttributes) + { + final ValidationResults validationResults = getCheckoutStep().validate(redirectAttributes); + if (getCheckoutStep().checkIfValidationErrors(validationResults)) + { + return getCheckoutStep().onValidation(validationResults); + } + if (StringUtils.isNotBlank(selectedAddressCode)) + { + final AddressData selectedAddressData = getCheckoutFacade().getDeliveryAddressForCode(selectedAddressCode); + final boolean hasSelectedAddressData = selectedAddressData != null; + if (hasSelectedAddressData) + { + final AddressData cartCheckoutDeliveryAddress = getCheckoutFacade().getCheckoutCart().getDeliveryAddress(); + if (isAddressIdChanged(cartCheckoutDeliveryAddress, selectedAddressData)) + { + getCheckoutFacade().setDeliveryAddress(selectedAddressData); + if (cartCheckoutDeliveryAddress != null && !cartCheckoutDeliveryAddress.isVisibleInAddressBook()) + { // temporary address should be removed + getUserFacade().removeAddress(cartCheckoutDeliveryAddress); + } + } + } + } + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(DELIVERY_ADDRESS); + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryMethodCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryMethodCheckoutStepController.java new file mode 100644 index 000000000..925e28c74 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/DeliveryMethodCheckoutStepController.java @@ -0,0 +1,102 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.order.data.CartData; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@Controller +@RequestMapping(value = "/checkout/multi/delivery-method") +public class DeliveryMethodCheckoutStepController extends AbstractCheckoutStepController +{ + private final static String DELIVERY_METHOD = "delivery-method"; + + @RequestMapping(value = "/choose", method = RequestMethod.GET) + @RequireHardLogIn + @Override + @PreValidateCheckoutStep(checkoutStep = DELIVERY_METHOD) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + // Try to set default delivery mode + getCheckoutFacade().setDeliveryModeIfAvailable(); + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + model.addAttribute("deliveryMethods", getCheckoutFacade().getSupportedDeliveryModes()); + this.prepareDataForPage(model); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.deliveryMethod.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return ControllerConstants.Views.Pages.MultiStepCheckout.ChooseDeliveryMethodPage; + } + + /** + * This method gets called when the "Use Selected Delivery Method" button is clicked. It sets the selected delivery + * mode on the checkout facade and reloads the page highlighting the selected delivery Mode. + * + * @param selectedDeliveryMethod + * - the id of the delivery mode. + * @return - a URL to the page to load. + */ + @RequestMapping(value = "/select", method = RequestMethod.GET) + @RequireHardLogIn + public String doSelectDeliveryMode(@RequestParam("delivery_method") final String selectedDeliveryMethod) + { + if (StringUtils.isNotEmpty(selectedDeliveryMethod)) + { + getCheckoutFacade().setDeliveryMode(selectedDeliveryMethod); + } + + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(DELIVERY_METHOD); + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/HopPaymentResponseController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/HopPaymentResponseController.java new file mode 100644 index 000000000..571a98476 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/HopPaymentResponseController.java @@ -0,0 +1,98 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + + +import de.hybris.platform.acceleratorfacades.payment.data.PaymentSubscriptionResultData; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.order.data.CCPaymentInfoData; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@Controller +@RequestMapping(value = "/checkout/multi/hop") +public class HopPaymentResponseController extends PaymentMethodCheckoutStepController +{ + @RequestMapping(value = "/response", method = RequestMethod.POST) + @RequireHardLogIn + public String doHandleHopResponse(final HttpServletRequest request) + { + final Map resultMap = getRequestParameterMap(request); + + final PaymentSubscriptionResultData paymentSubscriptionResultData = getPaymentFacade().completeHopCreateSubscription( + resultMap, true); + if (paymentSubscriptionResultData.isSuccess() && paymentSubscriptionResultData.getStoredCard() != null + && StringUtils.isNotBlank(paymentSubscriptionResultData.getStoredCard().getSubscriptionId())) + { + final CCPaymentInfoData newPaymentSubscription = paymentSubscriptionResultData.getStoredCard(); + + if (getUserFacade().getCCPaymentInfos(true).size() <= 1) + { + getUserFacade().setDefaultPaymentInfo(newPaymentSubscription); + } + getCheckoutFacade().setPaymentDetails(newPaymentSubscription.getId()); + } + else + { + // HOP ERROR! + LOG.error("Failed to create subscription. Please check the log files for more information"); + return REDIRECT_URL_ERROR + "/?decision=" + paymentSubscriptionResultData.getDecision() + "&reasonCode=" + + paymentSubscriptionResultData.getResultCode(); + } + + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/error", method = RequestMethod.GET) + public String doHostedOrderPageError(@RequestParam(required = true) final String decision, + @RequestParam(required = true) final String reasonCode, final Model model, final RedirectAttributes redirectAttributes) + throws CMSItemNotFoundException + { + String redirectUrl = REDIRECT_URL_ADD_PAYMENT_METHOD; + final ValidationResults validationResults = getCheckoutStep().validate(redirectAttributes); + if (getCheckoutStep().checkIfValidationErrors(validationResults)) + { + redirectUrl = getCheckoutStep().onValidation(validationResults); + } + model.addAttribute("decision", decision); + model.addAttribute("reasonCode", reasonCode); + model.addAttribute("redirectUrl", redirectUrl.replace(REDIRECT_PREFIX, "")); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.hostedOrderPageError.breadcrumb")); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + GlobalMessages.addErrorMessage(model, "checkout.multi.hostedOrderPageError.globalError"); + + return ControllerConstants.Views.Pages.MultiStepCheckout.HostedOrderPageErrorPage; + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/MultiStepCheckoutController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/MultiStepCheckoutController.java new file mode 100644 index 000000000..442aed6da --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/MultiStepCheckoutController.java @@ -0,0 +1,132 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.cms2.model.pages.ContentPageModel; +import de.hybris.platform.commercefacades.order.data.CartRestorationData; +import de.hybris.platform.commerceservices.order.CommerceCartModificationException; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +/** + * MultiStepCheckoutController + */ +@Controller +@RequestMapping(value = "/checkout/multi") +public class MultiStepCheckoutController extends AbstractCheckoutStepController +{ + protected static final Logger LOG = Logger.getLogger(MultiStepCheckoutController.class); + private final static String MULTI = "multi"; + + @Override + @RequestMapping(method = RequestMethod.GET) + @PreValidateCheckoutStep(checkoutStep = MULTI) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException, + CommerceCartModificationException + { + return getCheckoutStep().nextStep(); + } + + + @RequestMapping(value = "/termsAndConditions") + @RequireHardLogIn + public String getTermsAndConditions(final Model model) throws CMSItemNotFoundException + { + final ContentPageModel pageForRequest = getCmsPageService().getPageForLabel("/termsAndConditions"); + storeCmsPageInModel(model, pageForRequest); + setUpMetaDataForContentPage(model, pageForRequest); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, getContentPageBreadcrumbBuilder().getBreadcrumbs(pageForRequest)); + return ControllerConstants.Views.Fragments.Checkout.TermsAndConditionsPopup; + } + + @RequestMapping(value = "/express", method = RequestMethod.GET) + @RequireHardLogIn + public String performExpressCheckout(final Model model, final RedirectAttributes redirectModel) + throws CMSItemNotFoundException, CommerceCartModificationException + { + if (getSessionService().getAttribute(WebConstants.CART_RESTORATION) != null + && CollectionUtils.isNotEmpty(((CartRestorationData) getSessionService().getAttribute(WebConstants.CART_RESTORATION)) + .getModifications())) + { + return REDIRECT_URL_CART; + } + + if (getCheckoutFlowFacade().hasValidCart()) + { + switch (getCheckoutFacade().performExpressCheckout()) + { + case SUCCESS: + return REDIRECT_URL_SUMMARY; + + case ERROR_DELIVERY_ADDRESS: + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.express.error.deliveryAddress"); + return REDIRECT_URL_ADD_DELIVERY_ADDRESS; + + case ERROR_DELIVERY_MODE: + case ERROR_CHEAPEST_DELIVERY_MODE: + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.express.error.deliveryMode"); + return REDIRECT_URL_CHOOSE_DELIVERY_METHOD; + + case ERROR_PAYMENT_INFO: + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.express.error.paymentInfo"); + return REDIRECT_URL_ADD_PAYMENT_METHOD; + + default: + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.express.error.notAvailable"); + } + } + + return enterStep(model, redirectModel); + } + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(MULTI); + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PaymentMethodCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PaymentMethodCheckoutStepController.java new file mode 100644 index 000000000..63d9ac14f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PaymentMethodCheckoutStepController.java @@ -0,0 +1,741 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + + +import de.hybris.platform.acceleratorservices.enums.CheckoutPciOptionEnum; +import de.hybris.platform.acceleratorservices.payment.constants.PaymentConstants; +import de.hybris.platform.acceleratorservices.payment.data.PaymentData; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.acceleratorstorefrontcommons.forms.AddressForm; +import de.hybris.platform.acceleratorstorefrontcommons.forms.PaymentDetailsForm; +import de.hybris.platform.acceleratorstorefrontcommons.forms.SopPaymentDetailsForm; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.cms2.model.pages.ContentPageModel; +import de.hybris.platform.commercefacades.order.data.CardTypeData; +import de.hybris.platform.commercefacades.order.data.CartData; +import de.hybris.platform.commercefacades.user.data.AddressData; +import de.hybris.platform.commercefacades.user.data.CountryData; +import de.hybris.platform.commerceservices.order.CommerceCartModificationException; +import de.hybris.platform.payment.AdapterException; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.servicelayer.config.ConfigurationService; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import java.net.UnknownHostException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.adyen.facades.order.data.AdyenPaymentInfoData; +import com.adyen.facades.order.data.BoletoPaymentData; +import com.adyen.services.AdyenPaymentService; +import com.adyen.services.enums.BoletoBrand; +import com.adyen.services.integration.AdyenService; +import com.adyen.services.integration.data.PaymentMethods; +import com.adyen.services.integration.data.ResultCode; +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; +import com.adyen.services.integration.data.response.AdyenPaymentResponse; +import com.adyen.services.integration.exception.AdyenIs3DSecurityPaymentException; +import com.adyen.storefront.facades.impl.AdyenExtCheckoutFacade; +import com.adyen.storefront.forms.AdyenPaymentDetailsForm; +import com.adyen.storefront.forms.validation.AdyenPaymentDetailsValidator; + + +@Controller +@RequestMapping(value = "/checkout/multi/payment-method") +public class PaymentMethodCheckoutStepController extends AbstractCheckoutStepController +{ + protected static final Map cybersourceSopCardTypes = new HashMap(); + private final static String PAYMENT_METHOD = "payment-method"; + private static final String REDIRECT_URL_3D_SECURE_PAYMENT_VALIDATION = REDIRECT_PREFIX + + "/checkout/multi/payment-method/3d-secure-payment-validation"; + private static final String AUTHORISE_3D_SECURE_PAYMENT_URL = "/checkout/multi/payment-method/authorise-3d-secure-payment-adyen-response"; + + + @Resource(name = "checkoutFlowFacade") + private AdyenExtCheckoutFacade checkoutFacade; + + @Resource(name = "adyenService") + private AdyenService adyenService; + + @Resource(name = "configurationService") + private ConfigurationService configurationService; + + @Resource(name = "paymentService") + private AdyenPaymentService adyenPaymentService; + + @Resource(name = "adyenPaymentDetailsValidator") + private AdyenPaymentDetailsValidator adyenPaymentDetailsValidator; + + @ModelAttribute("billingCountries") + public Collection getBillingCountries() + { + return getCheckoutFacade().getBillingCountries(); + } + + @ModelAttribute("cardTypes") + public Collection getCardTypes() + { + return getCheckoutFacade().getSupportedCardTypes(); + } + + @ModelAttribute("months") + public List getMonths() + { + final List months = new ArrayList(); + + months.add(new SelectOption("01", "01")); + months.add(new SelectOption("02", "02")); + months.add(new SelectOption("03", "03")); + months.add(new SelectOption("04", "04")); + months.add(new SelectOption("05", "05")); + months.add(new SelectOption("06", "06")); + months.add(new SelectOption("07", "07")); + months.add(new SelectOption("08", "08")); + months.add(new SelectOption("09", "09")); + months.add(new SelectOption("10", "10")); + months.add(new SelectOption("11", "11")); + months.add(new SelectOption("12", "12")); + + return months; + } + + @ModelAttribute("startYears") + public List getStartYears() + { + final List startYears = new ArrayList(); + final Calendar calender = new GregorianCalendar(); + + for (int i = calender.get(Calendar.YEAR); i > (calender.get(Calendar.YEAR) - 6); i--) + { + startYears.add(new SelectOption(String.valueOf(i), String.valueOf(i))); + } + + return startYears; + } + + @ModelAttribute("expiryYears") + public List getExpiryYears() + { + final List expiryYears = new ArrayList(); + final Calendar calender = new GregorianCalendar(); + + for (int i = calender.get(Calendar.YEAR); i < (calender.get(Calendar.YEAR) + 11); i++) + { + expiryYears.add(new SelectOption(String.valueOf(i), String.valueOf(i))); + } + + return expiryYears; + } + + @Override + @RequestMapping(value = "/add", method = RequestMethod.GET) + @RequireHardLogIn + @PreValidateCheckoutStep(checkoutStep = PAYMENT_METHOD) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + //ADY-10 ADY-12 ADY-14 ADY-74 ,Flow condition branch. + maybeEnableAdyenAPIIntegration(model); + setupAddPaymentPage(model); + + // Use the checkout PCI strategy for getting the URL for creating new subscriptions. + final CheckoutPciOptionEnum subscriptionPciOption = getCheckoutFlowFacade().getSubscriptionPciOption(); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + if (CheckoutPciOptionEnum.HOP.equals(subscriptionPciOption)) + { + // Redirect the customer to the HOP page or show error message if it fails (e.g. no HOP configurations). + try + { + final PaymentData hostedOrderPageData = getPaymentFacade().beginHopCreateSubscription("/checkout/multi/hop/response", + "/integration/merchant_callback"); + model.addAttribute("hostedOrderPageData", hostedOrderPageData); + + final boolean hopDebugMode = getSiteConfigService().getBoolean(PaymentConstants.PaymentProperties.HOP_DEBUG_MODE, + false); + model.addAttribute("hopDebugMode", Boolean.valueOf(hopDebugMode)); + + return ControllerConstants.Views.Pages.MultiStepCheckout.HostedOrderPostPage; + } + catch (final Exception e) + { + LOG.error("Failed to build beginCreateSubscription request", e); + GlobalMessages.addErrorMessage(model, "checkout.multi.paymentMethod.addPaymentDetails.generalError"); + } + } + else if (CheckoutPciOptionEnum.SOP.equals(subscriptionPciOption)) + { + // Build up the SOP form data and render page containing form + final SopPaymentDetailsForm sopPaymentDetailsForm = new SopPaymentDetailsForm(); + try + { + setupSilentOrderPostPage(sopPaymentDetailsForm, model); + return ControllerConstants.Views.Pages.MultiStepCheckout.SilentOrderPostPage; + } + catch (final Exception e) + { + LOG.error("Failed to build beginCreateSubscription request", e); + GlobalMessages.addErrorMessage(model, "checkout.multi.paymentMethod.addPaymentDetails.generalError"); + model.addAttribute("sopPaymentDetailsForm", sopPaymentDetailsForm); + } + } + + // If not using HOP or SOP we need to build up the payment details form + final AdyenPaymentDetailsForm adyenPaymentDetailsForm = new AdyenPaymentDetailsForm(); + final AddressForm addressForm = new AddressForm(); + adyenPaymentDetailsForm.setBillingAddress(addressForm); + model.addAttribute(adyenPaymentDetailsForm); + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + maybeEnableAdyenHPPIntegration(model); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddPaymentMethodPage; + } + + private void maybeEnableAdyenHPPIntegration(final Model model) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseHPP()) + { + PaymentMethods hppPaymentMethods = new PaymentMethods(); + if (getCmsSiteService().getCurrentSite().isAdyenUseDirectoryLookup()) + { + hppPaymentMethods = getHPPPaymentMethods(); + } + + model.addAttribute("hppPaymentMethods", hppPaymentMethods.getPaymentMethods()); + model.addAttribute("hppEnabled", Boolean.TRUE); + } + } + + private PaymentMethods getHPPPaymentMethods() + { + final PaymentMethods paymentMethods = adyenService.directory(); + return (paymentMethods == null) ? new PaymentMethods() : paymentMethods; + } + + private String getHPPUrl(final boolean withBrandCode) + { + if (withBrandCode) + { + return configurationService.getConfiguration().getString("integration.adyen.hpp.details.url"); + } + return configurationService.getConfiguration().getString("integration.adyen.hpp.pay.url"); + } + + @RequestMapping(value = + { "/add" }, method = RequestMethod.POST) + @RequireHardLogIn + public String add(final Model model, @Valid final AdyenPaymentDetailsForm adyenPaymentDetailsForm, + final BindingResult bindingResult, final HttpServletRequest request) throws CMSItemNotFoundException + { + adyenPaymentDetailsValidator.validate(adyenPaymentDetailsForm, bindingResult); + setupAddPaymentPage(model); + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("cartData", cartData); + + if (bindingResult.hasErrors()) + { + maybeEnableAdyenAPIIntegration(model); + maybeEnableAdyenHPPIntegration(model); + GlobalMessages.addErrorMessage(model, "checkout.error.paymentethod.formentry.invalid"); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddPaymentMethodPage; + } + final AdyenPaymentInfoData paymentInfoData = new AdyenPaymentInfoData(); + paymentInfoData.setId(adyenPaymentDetailsForm.getPaymentId()); + paymentInfoData.setShopperIp(request.getRemoteAddr()); + + if (Boolean.TRUE.equals(adyenPaymentDetailsForm.getUseHPP())) + { + paymentInfoData.setUseHPP(Boolean.TRUE.booleanValue()); + paymentInfoData.setAdyenPaymentBrand(adyenPaymentDetailsForm.getAdyenPaymentBrand()); + paymentInfoData.setHppURL(getHPPUrl(StringUtils.isNotEmpty(adyenPaymentDetailsForm.getAdyenPaymentBrand()))); + paymentInfoData.setIssuerId(adyenPaymentDetailsForm.getIssuerId()); + } + else + { + if (Boolean.TRUE.equals(adyenPaymentDetailsForm.getUseBoleto())) + { + paymentInfoData.setUseBoleto(true); + final BoletoPaymentData boletoPaymentInfo = new BoletoPaymentData(); + boletoPaymentInfo.setFirstName(adyenPaymentDetailsForm.getFirstName()); + boletoPaymentInfo.setLastName(adyenPaymentDetailsForm.getLastName()); + boletoPaymentInfo.setSelectedBrand(adyenPaymentDetailsForm.getSelectedBrand()); + boletoPaymentInfo.setShopperStatement(adyenPaymentDetailsForm.getShopperStatement()); + boletoPaymentInfo.setSocialSecurityNumber(adyenPaymentDetailsForm.getSocialSecurityNumber()); + paymentInfoData.setBoletoPaymentInfo(boletoPaymentInfo); + } + else + { + + if (Boolean.TRUE.equals(adyenPaymentDetailsForm.getUseSavedPayment())) + { + paymentInfoData.setRecurringDetailReference(adyenPaymentDetailsForm.getSavedPaymentMethodId()); + paymentInfoData.setExpiryMonth(adyenPaymentDetailsForm.getSavePaymentMethodExpiryMonth()); + paymentInfoData.setExpiryYear(adyenPaymentDetailsForm.getSavePaymentMethodExpiryYear()); + paymentInfoData.setCardType(adyenPaymentDetailsForm.getSavedPaymentMethodType()); + paymentInfoData.setCardNumber(adyenPaymentDetailsForm.getSavedPaymentMethodCardNumber()); + paymentInfoData.setAccountHolderName(adyenPaymentDetailsForm.getSavedPaymentMethodOwner()); + checkoutFacade.storeCVC(adyenPaymentDetailsForm.getSavedPaymentMethodCVC()); + } + else + { + //ADY-18 + paymentInfoData.setCardEncryptedJson(request.getParameter("adyen-encrypted-data")); + paymentInfoData.setSavePayment(adyenPaymentDetailsForm.isSavePayment()); + paymentInfoData.setCardType(adyenPaymentDetailsForm.getCardTypeCode()); + paymentInfoData.setAccountHolderName(adyenPaymentDetailsForm.getNameOnCard()); + paymentInfoData.setCardNumber(adyenPaymentDetailsForm.getCardNumber()); + paymentInfoData.setStartMonth(adyenPaymentDetailsForm.getStartMonth()); + paymentInfoData.setStartYear(adyenPaymentDetailsForm.getStartYear()); + paymentInfoData.setExpiryMonth(adyenPaymentDetailsForm.getExpiryMonth()); + paymentInfoData.setExpiryYear(adyenPaymentDetailsForm.getExpiryYear()); + } + } + maybeSetInstallments(paymentInfoData, adyenPaymentDetailsForm.getInstallments()); + } + + if (Boolean.TRUE.equals(adyenPaymentDetailsForm.getSaveInAccount()) || getCheckoutCustomerStrategy().isAnonymousCheckout()) + { + paymentInfoData.setSaved(true); + } + paymentInfoData.setIssueNumber(adyenPaymentDetailsForm.getIssueNumber()); + + final AddressData addressData; + if (Boolean.FALSE.equals(adyenPaymentDetailsForm.getNewBillingAddress())) + { + addressData = getCheckoutFacade().getCheckoutCart().getDeliveryAddress(); + if (addressData == null) + { + GlobalMessages.addErrorMessage(model, + "checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg"); + maybeEnableAdyenAPIIntegration(model); + maybeEnableAdyenHPPIntegration(model); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddPaymentMethodPage; + } + + addressData.setBillingAddress(true); // mark this as billing address + } + else + { + final AddressForm addressForm = adyenPaymentDetailsForm.getBillingAddress(); + addressData = new AddressData(); + if (addressForm != null) + { + addressData.setId(addressForm.getAddressId()); + addressData.setTitleCode(addressForm.getTitleCode()); + addressData.setFirstName(addressForm.getFirstName()); + addressData.setLastName(addressForm.getLastName()); + addressData.setLine1(addressForm.getLine1()); + addressData.setLine2(addressForm.getLine2()); + addressData.setTown(addressForm.getTownCity()); + addressData.setPostalCode(addressForm.getPostcode()); + addressData.setCountry(getI18NFacade().getCountryForIsocode(addressForm.getCountryIso())); + if (addressForm.getRegionIso() != null) + { + addressData.setRegion(getI18NFacade().getRegion(addressForm.getCountryIso(), addressForm.getRegionIso())); + } + addressData.setShippingAddress(Boolean.TRUE.equals(addressForm.getShippingAddress())); + addressData.setBillingAddress(Boolean.TRUE.equals(addressForm.getBillingAddress())); + } + } + + getAddressVerificationFacade().verifyAddressData(addressData); + paymentInfoData.setBillingAddress(addressData); + + final AdyenPaymentInfoData newPaymentSubscription = checkoutFacade.createAdyenPaymentSubscription(paymentInfoData); + if (newPaymentSubscription != null && StringUtils.isNotBlank(newPaymentSubscription.getSubscriptionId())) + { + if (Boolean.TRUE.equals(adyenPaymentDetailsForm.getSaveInAccount()) + && getUserFacade().getCCPaymentInfos(true).size() <= 1) + { + getUserFacade().setDefaultPaymentInfo(newPaymentSubscription); + } + checkoutFacade.setPaymentDetails(newPaymentSubscription.getId()); + } + else + { + GlobalMessages.addErrorMessage(model, "checkout.multi.paymentMethod.createSubscription.failedMsg"); + maybeEnableAdyenAPIIntegration(model); + maybeEnableAdyenHPPIntegration(model); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddPaymentMethodPage; + } + + model.addAttribute("paymentId", newPaymentSubscription.getId()); + + if (newPaymentSubscription.isUseHPP()) + { + adyenPaymentService.clearPaymentTransaction(cartData.getCode()); + adyenPaymentService.createTransaction(cartData.getCode()); + return REDIRECT_URL_SUMMARY; + } + + // authorize, if failure occurs don't allow to place the order + checkoutFacade.getSessionService().setAttribute("userAgent", request.getHeader("User-Agent")); + checkoutFacade.getSessionService().setAttribute("accept", request.getHeader("Accept")); + try + { + final AdyenPaymentTransactionEntryModel entry = (AdyenPaymentTransactionEntryModel) checkoutFacade + .authorizeAdyenPayment(checkoutFacade.getSessionCVC()); + if (entry == null + || (!ResultCode.Authorised.name().equals(entry.getTransactionStatus()) && !ResultCode.Received.name().equals( + entry.getTransactionStatus()))) + { + if (entry != null && StringUtils.isNotBlank(entry.getAdyenMessage())) + { + GlobalMessages.addMessage(model, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.authorise.refusedWithreason", new Object[] + { entry.getAdyenMessage() }); + } + else + { + GlobalMessages.addErrorMessage(model, "checkout.multi.authorise.refused"); + } + maybeEnableAdyenAPIIntegration(model); + maybeEnableAdyenHPPIntegration(model); + return ControllerConstants.Views.Pages.MultiStepCheckout.AddPaymentMethodPage; + } + } + catch (final AdapterException ae) + { + // handle a case where a wrong paymentProvider configurations on the store see getCommerceCheckoutService().getPaymentProvider() + LOG.error(ae.getMessage(), ae); + } + catch (final AdyenIs3DSecurityPaymentException e) + { + //redirect to 3d security url + final AdyenPaymentResponse response = e.getPaymentResponse(); + return validate3DSecurePayment(response.getPaRequest(), response.getMd(), response.getIssuerUrl(), model, request); + } + finally + { + checkoutFacade.clearCVC(); + } + + model.addAttribute("paymentId", newPaymentSubscription.getId()); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return getCheckoutStep().nextStep(); + } + + + @RequestMapping(value = "/remove", method = RequestMethod.POST) + @RequireHardLogIn + public String remove(@RequestParam(value = "paymentInfoId") final String paymentMethodId, + final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + getUserFacade().unlinkCCPaymentInfo(paymentMethodId); + GlobalMessages.addFlashMessage(redirectAttributes, GlobalMessages.CONF_MESSAGES_HOLDER, + "text.account.profile.paymentCart.removed"); + return getCheckoutStep().currentStep(); + } + + @RequestMapping(value = "/3d-secure-payment-validation", method = RequestMethod.GET) + @RequireHardLogIn + public String validate3DSecurePayment(@RequestParam("paReq") final String paReq, @RequestParam("md") final String md, + @RequestParam("issuerUrl") final String issuerUrl, final Model model, final HttpServletRequest request) + { + model.addAttribute("paReq", paReq); + model.addAttribute("md", md); + final String siteUrl = configurationService.getConfiguration().getString( + "website." + getCmsSiteService().getCurrentSite().getUid() + "." + request.getScheme()); + model.addAttribute("termUrl", siteUrl + AUTHORISE_3D_SECURE_PAYMENT_URL); + model.addAttribute("issuerUrl", issuerUrl); + return ControllerConstants.Views.Pages.MultiStepCheckout.Validate3DSecurePaymentPage; + } + + @RequestMapping(value = "/authorise-3d-secure-payment-adyen-response", method = RequestMethod.POST) + @RequireHardLogIn + public String authorise3DSecurePayment(@RequestParam("PaRes") final String paRes, @RequestParam("MD") final String md, + final Model model, final RedirectAttributes redirectModel, final HttpServletRequest request) + throws CMSItemNotFoundException, CommerceCartModificationException, UnknownHostException + { + try + { + adyenPaymentService.maybeClearAuthorizeHistory(checkoutFacade.getCartModel()); + final AdyenPaymentTransactionEntryModel paymentTransactionEntry = (AdyenPaymentTransactionEntryModel) adyenPaymentService + .authorize3DSecure(checkoutFacade.getCartModel(), paRes, md, request.getRemoteAddr(), + request.getHeader("User-Agent"), request.getHeader("Accept")); + if (isPaymentFail(paymentTransactionEntry)) + { + if (paymentTransactionEntry != null && StringUtils.isNotBlank(paymentTransactionEntry.getAdyenMessage())) + { + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.3d.authorise.refusedWithreason", new Object[] + { paymentTransactionEntry.getAdyenMessage() }); + } + else + { + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.3d.authorise.refused"); + } + return REDIRECT_URL_ADD_PAYMENT_METHOD; + } + } + catch (final Exception e) + { + LOG.error("Failed to place Order", e); + GlobalMessages.addErrorMessage(model, "checkout.placeOrder.failed"); + } + return getCheckoutStep().nextStep(); + } + + /** + * @param paymentTransactionEntry + * @return + */ + public boolean isPaymentFail(final PaymentTransactionEntryModel paymentTransactionEntry) + { + return (paymentTransactionEntry == null) + || !((ResultCode.Authorised.name().equals(paymentTransactionEntry.getTransactionStatus())) || (ResultCode.Received + .name().equals(paymentTransactionEntry.getTransactionStatus()))); + } + + /** + * This method gets called when the "Use These Payment Details" button is clicked. It sets the selected payment + * method on the checkout facade and reloads the page highlighting the selected payment method. + * + * @param selectedPaymentMethodId + * - the id of the payment method to use. + * @return - a URL to the page to load. + */ + @RequestMapping(value = "/choose", method = RequestMethod.GET) + @RequireHardLogIn + public String doSelectPaymentMethod(@RequestParam("selectedPaymentMethodId") final String selectedPaymentMethodId) + { + if (StringUtils.isNotBlank(selectedPaymentMethodId)) + { + getCheckoutFacade().setPaymentDetails(selectedPaymentMethodId); + } + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + protected CardTypeData createCardTypeData(final String code, final String name) + { + final CardTypeData cardTypeData = new CardTypeData(); + cardTypeData.setCode(code); + cardTypeData.setName(name); + return cardTypeData; + } + + protected void setupAddPaymentPage(final Model model) throws CMSItemNotFoundException + { + model.addAttribute("metaRobots", "noindex,nofollow"); + model.addAttribute("hasNoPaymentInfo", Boolean.valueOf(getCheckoutFlowFacade().hasNoPaymentInfo())); + prepareDataForPage(model); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.paymentMethod.breadcrumb")); + final ContentPageModel contentPage = getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL); + storeCmsPageInModel(model, contentPage); + setUpMetaDataForContentPage(model, contentPage); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + } + + protected void setupSilentOrderPostPage(final SopPaymentDetailsForm sopPaymentDetailsForm, final Model model) + { + try + { + final PaymentData silentOrderPageData = getPaymentFacade().beginSopCreateSubscription("/checkout/multi/sop/response", + "/integration/merchant_callback"); + model.addAttribute("silentOrderPageData", silentOrderPageData); + sopPaymentDetailsForm.setParameters(silentOrderPageData.getParameters()); + model.addAttribute("paymentFormUrl", silentOrderPageData.getPostUrl()); + } + catch (final IllegalArgumentException e) + { + model.addAttribute("paymentFormUrl", ""); + model.addAttribute("silentOrderPageData", null); + LOG.warn("Failed to set up silent order post page " + e.getMessage()); + GlobalMessages.addErrorMessage(model, "checkout.multi.sop.globalError"); + } + + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + model.addAttribute("silentOrderPostForm", new PaymentDetailsForm()); + model.addAttribute("cartData", cartData); + model.addAttribute("deliveryAddress", cartData.getDeliveryAddress()); + model.addAttribute("sopPaymentDetailsForm", sopPaymentDetailsForm); + model.addAttribute("paymentInfos", getUserFacade().getCCPaymentInfos(true)); + model.addAttribute("sopCardTypes", getSopCardTypes()); + if (StringUtils.isNotBlank(sopPaymentDetailsForm.getBillTo_country())) + { + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(sopPaymentDetailsForm.getBillTo_country())); + model.addAttribute("country", sopPaymentDetailsForm.getBillTo_country()); + } + } + + protected Collection getSopCardTypes() + { + final Collection sopCardTypes = new ArrayList(); + + final List supportedCardTypes = getCheckoutFacade().getSupportedCardTypes(); + for (final CardTypeData supportedCardType : supportedCardTypes) + { + // Add credit cards for all supported cards that have mappings for cybersource SOP + if (cybersourceSopCardTypes.containsKey(supportedCardType.getCode())) + { + sopCardTypes.add(createCardTypeData(cybersourceSopCardTypes.get(supportedCardType.getCode()), + supportedCardType.getName())); + } + } + return sopCardTypes; + } + + private void getSavedPaymentMethods(final Model model) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseAPI() && getCmsSiteService().getCurrentSite().isAdyenUseSavedPayment()) + { + //ADY-11 + final AdyenListRecurringDetailsResponse listRecurringDetailsResponse = checkoutFacade.retrieveSavedPaymentMethod(); + if (null != listRecurringDetailsResponse) + { + if (!CollectionUtils.isEmpty(listRecurringDetailsResponse.getDetails())) + { + model.addAttribute("savedAdyenPaymentMethods", listRecurringDetailsResponse.getDetails()); + } + } + } + } + + private void maybeEnableAdyenAPIIntegration(final Model model) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseAPI()) + { + model.addAttribute("apiEnabled", Boolean.TRUE); + model.addAttribute("apiCESKey", getCmsSiteService().getCurrentSite().getAdyenCSEKey()); + model.addAttribute("generationTime", fromCalendar(GregorianCalendar.getInstance())); + } + getSavedPaymentMethods(model); + maybeSetupBoletoForm(model); + maybeEnableInstallment(model); + + } + + private String fromCalendar(final Calendar calendar) + { + final Date date = calendar.getTime(); + final String formatted = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(date); + return formatted.substring(0, 22) + ":" + formatted.substring(22); + } + + private void maybeSetupBoletoForm(final Model model) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseAPI() && getCmsSiteService().getCurrentSite().isAdyenBoletoAvailable()) + { + model.addAttribute("boletoEnabled", Boolean.TRUE); + model.addAttribute("boletoBrands", getBoletoBrands()); + } + else + { + model.addAttribute("boletoEnabled", Boolean.FALSE); + } + } + + private void maybeEnableInstallment(final Model model) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseAPI() && getCmsSiteService().getCurrentSite().isAdyenEnableInstallment()) + { + model.addAttribute("installments", getInstallments()); + } + } + + private void maybeSetInstallments(final AdyenPaymentInfoData data, final String formInstallments) + { + if (getCmsSiteService().getCurrentSite().isAdyenUseAPI() && getCmsSiteService().getCurrentSite().isAdyenEnableInstallment() + && StringUtils.isNotBlank(formInstallments)) + { + data.setInstallments(formInstallments); + } + } + + private List getInstallments() + { + final List installments = new ArrayList(); + + installments.add(new SelectOption("3", "3")); + installments.add(new SelectOption("6", "6")); + installments.add(new SelectOption("12", "12")); + installments.add(new SelectOption("24", "24")); + + return installments; + } + + private List getBoletoBrands() + { + final List availableBrands = getCmsSiteService().getCurrentSite().getAvailableBoletoTypes(); + final List boletoBrands = new ArrayList(); + for (final BoletoBrand brand : availableBrands) + { + boletoBrands.add(new SelectOption(brand.getCode(), brand.getCode())); + } + return boletoBrands; + } + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(PAYMENT_METHOD); + } + + static + { + // Map hybris card type to Cybersource SOP credit card + cybersourceSopCardTypes.put("visa", "001"); + cybersourceSopCardTypes.put("master", "002"); + cybersourceSopCardTypes.put("amex", "003"); + cybersourceSopCardTypes.put("diners", "005"); + cybersourceSopCardTypes.put("maestro", "024"); + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PickupLocationCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PickupLocationCheckoutStepController.java new file mode 100644 index 000000000..f26feb1ab --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/PickupLocationCheckoutStepController.java @@ -0,0 +1,108 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.validation.ValidationResults; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commerceservices.order.CommerceCartModificationException; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@Controller +@RequestMapping(value = "/checkout/multi/pickup-location") +public class PickupLocationCheckoutStepController extends AbstractCheckoutStepController +{ + private final static String PICKUP_LOCATION = "pickup-location"; + + @RequestMapping(value = "/choose", method = RequestMethod.GET) + @RequireHardLogIn + @Override + @PreValidateCheckoutStep(checkoutStep = PICKUP_LOCATION) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException + { + // Try to set default delivery mode + getCheckoutFacade().setDeliveryModeIfAvailable(); + + model.addAttribute("cartData", getCheckoutFacade().getCheckoutCart()); + model.addAttribute("pickupConsolidationOptions", getCheckoutFacade().getConsolidatedPickupOptions()); + model.addAttribute("userLocation", getCustomerLocationService().getUserLocation()); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.deliveryMethod.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return ControllerConstants.Views.Pages.MultiStepCheckout.ChoosePickupLocationPage; + } + + @RequestMapping(value = "/choose", method = RequestMethod.POST) + @RequireHardLogIn + public String doSelectDeliveryLocation(@RequestParam(value = "posName") final String posName, final Model model, + final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException, CommerceCartModificationException + { + final ValidationResults validationResults = getCheckoutStep().validate(redirectAttributes); + if (getCheckoutStep().checkIfValidationErrors(validationResults)) + { + return getCheckoutStep().onValidation(validationResults); + } + + //Consolidate the cart and add unsuccessful modifications to page + model.addAttribute("validationData", getCheckoutFacade().consolidateCheckoutCart(posName)); + model.addAttribute("cartData", getCheckoutFacade().getCheckoutCart()); + model.addAttribute("userLocation", getCustomerLocationService().getUserLocation()); + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.deliveryMethod.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + + return ControllerConstants.Views.Pages.MultiStepCheckout.ChoosePickupLocationPage; + } + + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(PICKUP_LOCATION); + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SopPaymentResponseController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SopPaymentResponseController.java new file mode 100644 index 000000000..8016cea36 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SopPaymentResponseController.java @@ -0,0 +1,160 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorfacades.payment.data.PaymentSubscriptionResultData; +import de.hybris.platform.acceleratorservices.payment.data.PaymentErrorField; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.acceleratorstorefrontcommons.forms.SopPaymentDetailsForm; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.order.data.CCPaymentInfoData; +import de.hybris.platform.commercefacades.user.data.AddressData; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@Controller +@RequestMapping(value = "/checkout/multi/sop") +public class SopPaymentResponseController extends PaymentMethodCheckoutStepController +{ + + @RequestMapping(value = "/response", method = RequestMethod.POST) + @RequireHardLogIn + public String doHandleSopResponse(final HttpServletRequest request, @Valid final SopPaymentDetailsForm sopPaymentDetailsForm, + final BindingResult bindingResult, final Model model, final RedirectAttributes redirectAttributes) + throws CMSItemNotFoundException + { + final Map resultMap = getRequestParameterMap(request); + + final boolean savePaymentInfo = sopPaymentDetailsForm.isSavePaymentInfo() + || getCheckoutCustomerStrategy().isAnonymousCheckout(); + final PaymentSubscriptionResultData paymentSubscriptionResultData = this.getPaymentFacade().completeSopCreateSubscription( + resultMap, savePaymentInfo); + + if (paymentSubscriptionResultData.isSuccess() && paymentSubscriptionResultData.getStoredCard() != null + && StringUtils.isNotBlank(paymentSubscriptionResultData.getStoredCard().getSubscriptionId())) + { + final CCPaymentInfoData newPaymentSubscription = paymentSubscriptionResultData.getStoredCard(); + + if (getUserFacade().getCCPaymentInfos(true).size() <= 1) + { + getUserFacade().setDefaultPaymentInfo(newPaymentSubscription); + } + getCheckoutFacade().setPaymentDetails(newPaymentSubscription.getId()); + } + else if ((paymentSubscriptionResultData.getDecision() != null && paymentSubscriptionResultData.getDecision() + .equalsIgnoreCase("error")) + || (paymentSubscriptionResultData.getErrors() != null && !paymentSubscriptionResultData.getErrors().isEmpty())) + { + // Have SOP errors that we can display + + setupAddPaymentPage(model); + + // Build up the SOP form data and render page containing form + try + { + setupSilentOrderPostPage(sopPaymentDetailsForm, model); + } + catch (final Exception e) + { + LOG.error("Failed to build beginCreateSubscription request", e); + GlobalMessages.addErrorMessage(model, "checkout.multi.paymentMethod.addPaymentDetails.generalError"); + return enterStep(model, redirectAttributes); + } + + if (paymentSubscriptionResultData.getErrors() != null && !paymentSubscriptionResultData.getErrors().isEmpty()) + { + GlobalMessages.addErrorMessage(model, "checkout.error.paymentethod.formentry.invalid"); + // Add in specific errors for invalid fields + for (final PaymentErrorField paymentErrorField : paymentSubscriptionResultData.getErrors().values()) + { + if (paymentErrorField.isMissing()) + { + bindingResult.rejectValue(paymentErrorField.getName(), "checkout.error.paymentethod.formentry.sop.missing." + + paymentErrorField.getName(), "Please enter a value for this field"); + } + if (paymentErrorField.isInvalid()) + { + bindingResult.rejectValue(paymentErrorField.getName(), "checkout.error.paymentethod.formentry.sop.invalid." + + paymentErrorField.getName(), "This value is invalid for this field"); + } + } + } + else if (paymentSubscriptionResultData.getDecision() != null + && paymentSubscriptionResultData.getDecision().equalsIgnoreCase("error")) + { + LOG.error("Failed to create subscription. Error occurred while contacting external payment services."); + GlobalMessages.addErrorMessage(model, "checkout.multi.paymentMethod.addPaymentDetails.generalError"); + } + + return ControllerConstants.Views.Pages.MultiStepCheckout.SilentOrderPostPage; + } + else + { + // SOP ERROR! + LOG.error("Failed to create subscription. Please check the log files for more information"); + return REDIRECT_URL_ERROR + "/?decision=" + paymentSubscriptionResultData.getDecision() + "&reasonCode=" + + paymentSubscriptionResultData.getResultCode(); + } + + return getCheckoutStep().nextStep(); + } + + @RequestMapping(value = "/billingaddressform", method = RequestMethod.GET) + public String getCountryAddressForm(@RequestParam("countryIsoCode") final String countryIsoCode, + @RequestParam("useDeliveryAddress") final boolean useDeliveryAddress, final Model model) + { + model.addAttribute("supportedCountries", getCountries()); + model.addAttribute("regions", getI18NFacade().getRegionsForCountryIso(countryIsoCode)); + model.addAttribute("country", countryIsoCode); + + final SopPaymentDetailsForm sopPaymentDetailsForm = new SopPaymentDetailsForm(); + model.addAttribute("sopPaymentDetailsForm", sopPaymentDetailsForm); + if (useDeliveryAddress) + { + final AddressData deliveryAddress = getCheckoutFacade().getCheckoutCart().getDeliveryAddress(); + + if (deliveryAddress.getRegion() != null && !StringUtils.isEmpty(deliveryAddress.getRegion().getIsocode())) + { + sopPaymentDetailsForm.setBillTo_state(deliveryAddress.getRegion().getIsocodeShort()); + } + + sopPaymentDetailsForm.setBillTo_titleCode(deliveryAddress.getTitleCode()); + sopPaymentDetailsForm.setBillTo_firstName(deliveryAddress.getFirstName()); + sopPaymentDetailsForm.setBillTo_lastName(deliveryAddress.getLastName()); + sopPaymentDetailsForm.setBillTo_street1(deliveryAddress.getLine1()); + sopPaymentDetailsForm.setBillTo_street2(deliveryAddress.getLine2()); + sopPaymentDetailsForm.setBillTo_city(deliveryAddress.getTown()); + sopPaymentDetailsForm.setBillTo_postalCode(deliveryAddress.getPostalCode()); + sopPaymentDetailsForm.setBillTo_country(deliveryAddress.getCountry().getIsocode()); + } + return ControllerConstants.Views.Fragments.Checkout.BillingAddressForm; + } + + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SummaryCheckoutStepController.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SummaryCheckoutStepController.java new file mode 100644 index 000000000..3b53e1a1c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/checkout/steps/SummaryCheckoutStepController.java @@ -0,0 +1,451 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.controllers.pages.checkout.steps; + +import de.hybris.platform.acceleratorservices.enums.CheckoutPciOptionEnum; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.PreValidateCheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.annotations.RequireHardLogIn; +import de.hybris.platform.acceleratorstorefrontcommons.checkout.steps.CheckoutStep; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.acceleratorstorefrontcommons.controllers.util.GlobalMessages; +import de.hybris.platform.acceleratorstorefrontcommons.forms.PlaceOrderForm; +import de.hybris.platform.cms2.exceptions.CMSItemNotFoundException; +import de.hybris.platform.commercefacades.order.data.CartData; +import de.hybris.platform.commercefacades.order.data.OrderData; +import de.hybris.platform.commercefacades.order.data.OrderEntryData; +import de.hybris.platform.commercefacades.product.ProductOption; +import de.hybris.platform.commercefacades.product.data.ProductData; +import de.hybris.platform.commerceservices.order.CommerceCartModificationException; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.order.InvalidCartException; +import de.hybris.platform.servicelayer.config.ConfigurationService; +import de.hybris.platform.storefront.controllers.ControllerConstants; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang.StringUtils; +import org.apache.velocity.app.VelocityEngine; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.velocity.VelocityEngineUtils; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.adyen.facades.order.data.AdyenPaymentInfoData; +import com.adyen.services.AdyenPaymentService; +import com.adyen.services.integration.AdyenService; +import com.adyen.storefront.facades.impl.AdyenExtCheckoutFacade; +import com.adyen.storefront.forms.HPPDataForm; + + +@Controller +@RequestMapping(value = "/checkout/multi/summary") +public class SummaryCheckoutStepController extends AbstractCheckoutStepController +{ + private final static String SUMMARY = "summary"; + + @Resource(name = "checkoutFlowFacade") + private AdyenExtCheckoutFacade checkoutFacade; + + @Resource(name = "adyenService") + private AdyenService adyenService; + + @Resource(name = "configurationService") + private ConfigurationService configurationService; + + @Resource(name = "velocityEngine") + private VelocityEngine velocityEngine; + + @Resource(name = "paymentService") + private AdyenPaymentService adyenPaymentService; + + + @RequestMapping(value = "/view", method = RequestMethod.GET) + @RequireHardLogIn + @Override + @PreValidateCheckoutStep(checkoutStep = SUMMARY) + public String enterStep(final Model model, final RedirectAttributes redirectAttributes) throws CMSItemNotFoundException, + CommerceCartModificationException + { + final CartData cartData = checkoutFacade.getCheckoutCart(); + if (cartData.getEntries() != null && !cartData.getEntries().isEmpty()) + { + for (final OrderEntryData entry : cartData.getEntries()) + { + final String productCode = entry.getProduct().getCode(); + final ProductData product = getProductFacade().getProductForCodeAndOptions(productCode, + Arrays.asList(ProductOption.BASIC, ProductOption.PRICE)); + entry.setProduct(product); + } + } + + model.addAttribute("cartData", cartData); + model.addAttribute("allItems", cartData.getEntries()); + model.addAttribute("deliveryAddress", cartData.getDeliveryAddress()); + model.addAttribute("deliveryMode", cartData.getDeliveryMode()); + model.addAttribute("paymentInfo", cartData.getPaymentInfo()); + + model.addAttribute("boletoUrl", checkoutFacade.getBoletoUrl()); + + if (((AdyenPaymentInfoData) cartData.getPaymentInfo()).isUseHPP()) + { + final HPPDataForm hppForm = getHPPFormData(); + model.addAttribute("hppFormData", hppForm); + } + + // Only request the security code if the SubscriptionPciOption is set to Default. + final boolean requestSecurityCode = (CheckoutPciOptionEnum.DEFAULT.equals(getCheckoutFlowFacade() + .getSubscriptionPciOption())); + model.addAttribute("requestSecurityCode", Boolean.valueOf(requestSecurityCode)); + + model.addAttribute(new PlaceOrderForm()); + + storeCmsPageInModel(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + setUpMetaDataForContentPage(model, getContentPageForLabelOrId(MULTI_CHECKOUT_SUMMARY_CMS_PAGE_LABEL)); + model.addAttribute(WebConstants.BREADCRUMBS_KEY, + getResourceBreadcrumbBuilder().getBreadcrumbs("checkout.multi.summary.breadcrumb")); + model.addAttribute("metaRobots", "noindex,nofollow"); + setCheckoutStepLinksForModel(model, getCheckoutStep()); + return ControllerConstants.Views.Pages.MultiStepCheckout.CheckoutSummaryPage; + } + + + @RequestMapping(value = "/placeOrder") + @RequireHardLogIn + public String placeOrder(@ModelAttribute("placeOrderForm") final PlaceOrderForm placeOrderForm, final Model model, + final HttpServletRequest request, final RedirectAttributes redirectModel) throws CMSItemNotFoundException, + InvalidCartException, CommerceCartModificationException + { + if (validateOrderForm(placeOrderForm, model)) + { + return enterStep(model, redirectModel); + } + + //Validate the cart + if (validateCart(redirectModel)) + { + // Invalid cart. Bounce back to the cart page. + return REDIRECT_PREFIX + "/cart"; + } + + // authorize, if failure occurs don't allow to place the order + final boolean isPaymentUthorized = checkoutFacade.isPaymentUthorized(); + + + if (!isPaymentUthorized) + { + GlobalMessages.addErrorMessage(model, "checkout.error.authorization.failed"); + return enterStep(model, redirectModel); + } + + final OrderData orderData; + try + { + orderData = getCheckoutFacade().placeOrder(); + } + catch (final Exception e) + { + LOG.error("Failed to place Order", e); + GlobalMessages.addErrorMessage(model, "checkout.placeOrder.failed"); + return enterStep(model, redirectModel); + } + + return redirectToOrderConfirmationPage(orderData); + } + + /** + * Validates the order form before to filter out invalid order states + * + * @param placeOrderForm + * The spring form of the order being submitted + * @param model + * A spring Model + * @return True if the order form is invalid and false if everything is valid. + */ + protected boolean validateOrderForm(final PlaceOrderForm placeOrderForm, final Model model) + { + //final String securityCode = placeOrderForm.getSecurityCode(); + boolean invalid = false; + + if (getCheckoutFlowFacade().hasNoDeliveryAddress()) + { + GlobalMessages.addErrorMessage(model, "checkout.deliveryAddress.notSelected"); + invalid = true; + } + + if (getCheckoutFlowFacade().hasNoDeliveryMode()) + { + GlobalMessages.addErrorMessage(model, "checkout.deliveryMethod.notSelected"); + invalid = true; + } + + if (getCheckoutFlowFacade().hasNoPaymentInfo()) + { + GlobalMessages.addErrorMessage(model, "checkout.paymentMethod.notSelected"); + invalid = true; + } + // else + // { + // // Only require the Security Code to be entered on the summary page if the SubscriptionPciOption is set to Default. + // if (CheckoutPciOptionEnum.DEFAULT.equals(getCheckoutFlowFacade().getSubscriptionPciOption()) + // && StringUtils.isBlank(securityCode)) + // { + // GlobalMessages.addErrorMessage(model, "checkout.paymentMethod.noSecurityCode"); + // invalid = true; + // } + // } + + if (!placeOrderForm.isTermsCheck()) + { + GlobalMessages.addErrorMessage(model, "checkout.error.terms.not.accepted"); + invalid = true; + return invalid; + } + final CartData cartData = checkoutFacade.getCheckoutCart(); + + if (!checkoutFacade.containsTaxValues()) + { + LOG.error(String + .format( + "Cart %s does not have any tax values, which means the tax cacluation was not properly done, placement of order can't continue", + cartData.getCode())); + GlobalMessages.addErrorMessage(model, "checkout.error.tax.missing"); + invalid = true; + } + + if (!cartData.isCalculated()) + { + LOG.error(String.format("Cart %s has a calculated flag of FALSE, placement of order can't continue", cartData.getCode())); + GlobalMessages.addErrorMessage(model, "checkout.error.cart.notcalculated"); + invalid = true; + } + + return invalid; + } + + public HPPDataForm getHPPFormData() + { + final CartData cartData = getCheckoutFacade().getCheckoutCart(); + final HPPDataForm hppDataForm = new HPPDataForm(); + final Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, 1); + final Date sessionDate = calendar.getTime(); // current date + 1 day + final String sessionValidity = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(sessionDate); + final LinkedHashMap merchantData = new LinkedHashMap(); + merchantData.put("paymentAmount", + new Integer(new BigDecimal(100).multiply(cartData.getTotalPrice().getValue()).intValue()).toString()); + merchantData.put("currencyCode", cartData.getTotalPrice().getCurrencyIso()); + merchantData.put("shipBeforeDate", sessionValidity); + merchantData.put("merchantReference", cartData.getCode()); + merchantData.put("skinCode", getCmsSiteService().getCurrentSite().getAdyenSkinCode()); + merchantData.put("merchantAccount", getCmsSiteService().getCurrentSite().getAdyenMerchantAccount()); + merchantData.put("sessionValidity", sessionValidity); + merchantData.put("shopperReference", ""); + merchantData.put("recurringContract", ""); + merchantData.put("offset", ""); + merchantData.put("brandCode", ""); + merchantData.put("issuerId", ""); + + final String merchantSig = adyenService.calculateHMAC(getCmsSiteService().getCurrentSite().getAdyenHmacKey(), + getSigningString(merchantData)); + merchantData.put("merchantSig", merchantSig); + /* ADY-115 start */ + merchantData.put("countryCode", adyenService.getCountryCode()); + /* ADY-115 end */ + final LinkedHashMap shopperData = new LinkedHashMap(); + shopperData.put("shopperFirstName", getUser().getFirstName()); + shopperData.put("shopperLastName", getUser().getLastName()); + + final LinkedHashMap formData = new LinkedHashMap(); + formData.putAll(merchantData); + formData.putAll(shopperData); + + /* ADY-125 start */ + final LinkedHashMap openInvoiceData = adyenPaymentService.buildHPPOpenInvoiceData(); + final String openInvoiceDataSig = adyenService.buildOpenInvoiceDataSig(merchantSig, openInvoiceData, getCmsSiteService() + .getCurrentSite().getAdyenHmacKey()); + formData.putAll(openInvoiceData); + formData.put("openinvoicedata.sig", openInvoiceDataSig); + /* ADY-125 end */ + + final String siteUrl = configurationService.getConfiguration().getString( + "website." + getCmsSiteService().getCurrentSite().getUid() + ".https"); + formData.put( + "resURL", + siteUrl + + configurationService.getConfiguration().getString("authorise.HPP.payment.return.url", + "/checkout/multi/summary/authorise-hpp-payment-adyen-response")); + formData.put("orderData", renderCartData(cartData)); + hppDataForm.setHppDataMap(formData); + return hppDataForm; + } + + private String renderCartData(final CartData cartData) + { + final String templatePath = "/adyencore/import/template/orderDetails.vm"; + final HashMap context = new HashMap(); + context.put("order", cartData); + final String details = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templatePath, "UTF-8", context); + if (StringUtils.isEmpty(details)) + { + return ""; + } + return adyenService.compressString(details); + } + + @RequestMapping(value = "/authorise-hpp-payment-adyen-response", method = RequestMethod.GET) + @RequireHardLogIn + public String authoriseHPPPaymentResponse(@RequestParam final String merchantReference, + @RequestParam(required = false) final String pspReference, @RequestParam final String authResult, final Model model, + final RedirectAttributes redirectModel, final HttpServletRequest request) + { + try + { + final StringBuffer responseString = new StringBuffer("handling hpp authorise response by hybris hosted URL:\n"); + final Enumeration paramNames = request.getParameterNames(); + while (paramNames.hasMoreElements()) + { + final String paramName = (String) paramNames.nextElement(); + + final String[] paramValues = request.getParameterValues(paramName); + if (paramValues.length == 1) + { + final String paramValue = paramValues[0]; + if (paramValue.length() != 0) + { + responseString.append(paramName + "=" + paramValue + "\n"); + } + } + } + LOG.info(responseString.toString()); + if ("AUTHORISED".equals(authResult) || "PENDING".equals(authResult)) + { + + if (null != checkoutFacade.getCartModel() && checkoutFacade.getCartModel().getEntries().size() > 0) + { + adyenPaymentService.createHPPAuthorisePTE(merchantReference, pspReference, authResult); + LOG.info("HPP Response shows payment success, place order here."); + return placeOrderInternal(model, redirectModel); + } + else + { + //Try to get order using pspReference + LOG.info("Cart doesn't not exist anymore, try find order using PSP reference."); + final AbstractOrderModel order = adyenPaymentService.getOrderByPSPReference(pspReference); + if (null != order && order instanceof OrderModel) + { + adyenPaymentService.createHPPAuthorisePTE(order, pspReference, authResult); + return REDIRECT_URL_ORDER_CONFIRMATION + + (getCheckoutCustomerStrategy().isAnonymousCheckout() ? order.getGuid() : order.getCode()); + } + } + } + else if ("CANCELLED".equals(authResult)) + { + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.hpp.authorise.cancelled"); + return REDIRECT_URL_ADD_PAYMENT_METHOD; + } + else + { + GlobalMessages.addFlashMessage(redirectModel, GlobalMessages.ERROR_MESSAGES_HOLDER, + "checkout.multi.3d.authorise.refused"); + return REDIRECT_URL_ADD_PAYMENT_METHOD; + } + } + catch (final Exception e) + { + LOG.error("Failed to place Order", e); + GlobalMessages.addErrorMessage(model, "checkout.placeOrder.failed"); + } + return REDIRECT_URL_SUMMARY; + } + + private String getSigningString(final LinkedHashMap map) + { + final StringBuffer buffer = new StringBuffer(); + for (final Iterator it = map.keySet().iterator(); it.hasNext();) + { + final Object key = it.next(); + if (StringUtils.isNotEmpty(map.get(key) + "")) + { + buffer.append(map.get(key)); + } + } + return buffer.toString(); + } + + /** + * @param model + * @param redirectModel + * @return + * @throws CMSItemNotFoundException + * @throws CommerceCartModificationException + */ + private String placeOrderInternal(final Model model, final RedirectAttributes redirectModel) throws CMSItemNotFoundException, + CommerceCartModificationException + { + final OrderData orderData; + try + { + orderData = getCheckoutFacade().placeOrder(); + } + catch (final Exception e) + { + LOG.error("Failed to place Order", e); + GlobalMessages.addErrorMessage(model, "checkout.placeOrder.failed"); + return enterStep(model, redirectModel); + } + + return redirectToOrderConfirmationPage(orderData); + } + + @RequestMapping(value = "/back", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String back(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().previousStep(); + } + + @RequestMapping(value = "/next", method = RequestMethod.GET) + @RequireHardLogIn + @Override + public String next(final RedirectAttributes redirectAttributes) + { + return getCheckoutStep().nextStep(); + } + + protected CheckoutStep getCheckoutStep() + { + return getCheckoutStep(SUMMARY); + } + + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/dummy.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/controllers/pages/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/AdyenPaymentDetailsForm.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/AdyenPaymentDetailsForm.java new file mode 100644 index 000000000..522e1a264 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/AdyenPaymentDetailsForm.java @@ -0,0 +1,642 @@ +/** + * + */ +package com.adyen.storefront.forms; + +import de.hybris.platform.acceleratorstorefrontcommons.forms.AddressForm; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenPaymentDetailsForm +{ + + private String paymentId; + private String cardTypeCode; + private String nameOnCard; + private String cardNumber; + private String startMonth; + private String startYear; + private String expiryMonth; + private String expiryYear; + private String issueNumber; + + private Boolean saveInAccount; + + private Boolean newBillingAddress; + + private AddressForm billingAddress; + + //For recurring + private boolean savePayment; + private String securityCode; + private String savedPaymentMethodId; + private String savedPaymentMethodNumber; + private String savedPaymentMethodCVC; + private String savePaymentMethodExpiryMonth; + private String savePaymentMethodExpiryYear; + private String savedPaymentMethodCardNumber; + private String savedPaymentMethodOwner; + private String savedPaymentMethodType; + + //For installments + private String installments; + + //For Boleto + private String firstName; + private String lastName; + private String selectedBrand; + private String socialSecurityNumber; + private String shopperStatement; + private Boolean useBoleto = Boolean.FALSE; + private Boolean useSavedPayment = Boolean.FALSE; + private Boolean useCreditCard = Boolean.FALSE; + + //HPP + private Boolean useHPP = Boolean.FALSE; + private String adyenPaymentBrand; + private String issuerId; + + + + /** + * @param useHPP + * the useHPP to set + */ + public void setUseHPP(final Boolean useHPP) + { + this.useHPP = useHPP; + } + + /** + * @return the adyenPaymentBrand + */ + public String getAdyenPaymentBrand() + { + return adyenPaymentBrand; + } + + /** + * @param adyenPaymentBrand + * the adyenPaymentBrand to set + */ + public void setAdyenPaymentBrand(final String adyenPaymentBrand) + { + this.adyenPaymentBrand = adyenPaymentBrand; + } + + /** + * @return the useHPP + */ + public Boolean getUseHPP() + { + return useHPP; + } + + /** + * @return the useBoleto + */ + public Boolean getUseBoleto() + { + return useBoleto; + } + + /** + * @param useBoleto + * the useBoleto to set + */ + public void setUseBoleto(final Boolean useBoleto) + { + this.useBoleto = useBoleto; + } + + /** + * @return the useSavedPayment + */ + public Boolean getUseSavedPayment() + { + return useSavedPayment; + } + + /** + * @param useSavedPayment + * the useSavedPayment to set + */ + public void setUseSavedPayment(final Boolean useSavedPayment) + { + this.useSavedPayment = useSavedPayment; + } + + /** + * @return the useCreditCard + */ + public Boolean getUseCreditCard() + { + return useCreditCard; + } + + /** + * @param useCreditCard + * the useCreditCard to set + */ + public void setUseCreditCard(final Boolean useCreditCard) + { + this.useCreditCard = useCreditCard; + } + + /** + * @return the firstName + */ + public String getFirstName() + { + return firstName; + } + + /** + * @param firstName + * the firstName to set + */ + public void setFirstName(final String firstName) + { + this.firstName = firstName; + } + + /** + * @return the lastName + */ + public String getLastName() + { + return lastName; + } + + /** + * @param lastName + * the lastName to set + */ + public void setLastName(final String lastName) + { + this.lastName = lastName; + } + + /** + * @return the selectedBrand + */ + public String getSelectedBrand() + { + return selectedBrand; + } + + /** + * @param selectedBrand + * the selectedBrand to set + */ + public void setSelectedBrand(final String selectedBrand) + { + this.selectedBrand = selectedBrand; + } + + /** + * @return the socialSecurityNumber + */ + public String getSocialSecurityNumber() + { + return socialSecurityNumber; + } + + /** + * @param socialSecurityNumber + * the socialSecurityNumber to set + */ + public void setSocialSecurityNumber(final String socialSecurityNumber) + { + this.socialSecurityNumber = socialSecurityNumber; + } + + /** + * @return the shopperStatement + */ + public String getShopperStatement() + { + return shopperStatement; + } + + /** + * @param shopperStatement + * the shopperStatement to set + */ + public void setShopperStatement(final String shopperStatement) + { + this.shopperStatement = shopperStatement; + } + + /** + * @return the installmets + */ + public String getInstallments() + { + return installments; + } + + /** + * @param installmets + * the installmets to set + */ + public void setInstallments(final String installments) + { + this.installments = installments; + } + + /** + * @return the savedPaymentMethodCardNumber + */ + public String getSavedPaymentMethodCardNumber() + { + return savedPaymentMethodCardNumber; + } + + /** + * @param savedPaymentMethodCardNumber + * the savedPaymentMethodCardNumber to set + */ + public void setSavedPaymentMethodCardNumber(final String savedPaymentMethodCardNumber) + { + this.savedPaymentMethodCardNumber = savedPaymentMethodCardNumber; + } + + /** + * @return the savedPaymentMethodNumber + */ + public String getSavedPaymentMethodNumber() + { + return savedPaymentMethodNumber; + } + + /** + * @param savedPaymentMethodNumber + * the savedPaymentMethodNumber to set + */ + public void setSavedPaymentMethodNumber(final String savedPaymentMethodNumber) + { + this.savedPaymentMethodNumber = savedPaymentMethodNumber; + } + + /** + * @return the savedPaymentMethodOwner + */ + public String getSavedPaymentMethodOwner() + { + return savedPaymentMethodOwner; + } + + /** + * @param savedPaymentMethodOwner + * the savedPaymentMethodOwner to set + */ + public void setSavedPaymentMethodOwner(final String savedPaymentMethodOwner) + { + this.savedPaymentMethodOwner = savedPaymentMethodOwner; + } + + /** + * @return the savedPaymentMethodType + */ + public String getSavedPaymentMethodType() + { + return savedPaymentMethodType; + } + + /** + * @param savedPaymentMethodType + * the savedPaymentMethodType to set + */ + public void setSavedPaymentMethodType(final String savedPaymentMethodType) + { + this.savedPaymentMethodType = savedPaymentMethodType; + } + + /** + * @return the savedPaymentMethodId + */ + public String getSavedPaymentMethodId() + { + return savedPaymentMethodId; + } + + /** + * @param savedPaymentMethodId + * the savedPaymentMethodId to set + */ + public void setSavedPaymentMethodId(final String savedPaymentMethodId) + { + this.savedPaymentMethodId = savedPaymentMethodId; + } + + /** + * @return the savedPaymentMethodCVC + */ + public String getSavedPaymentMethodCVC() + { + return savedPaymentMethodCVC; + } + + /** + * @param savedPaymentMethodCVC + * the savedPaymentMethodCVC to set + */ + public void setSavedPaymentMethodCVC(final String savedPaymentMethodCVC) + { + this.savedPaymentMethodCVC = savedPaymentMethodCVC; + } + + /** + * @return the savePaymentMethodExpiryMonth + */ + public String getSavePaymentMethodExpiryMonth() + { + return savePaymentMethodExpiryMonth; + } + + /** + * @param savePaymentMethodExpiryMonth + * the savePaymentMethodExpiryMonth to set + */ + public void setSavePaymentMethodExpiryMonth(final String savePaymentMethodExpiryMonth) + { + this.savePaymentMethodExpiryMonth = savePaymentMethodExpiryMonth; + } + + /** + * @return the savePaymentMethodExpiryYear + */ + public String getSavePaymentMethodExpiryYear() + { + return savePaymentMethodExpiryYear; + } + + /** + * @param savePaymentMethodExpiryYear + * the savePaymentMethodExpiryYear to set + */ + public void setSavePaymentMethodExpiryYear(final String savePaymentMethodExpiryYear) + { + this.savePaymentMethodExpiryYear = savePaymentMethodExpiryYear; + } + + /** + * @return the securityCode + */ + public String getSecurityCode() + { + return securityCode; + } + + /** + * @param securityCode + * the securityCode to set + */ + public void setSecurityCode(final String securityCode) + { + this.securityCode = securityCode; + } + + /** + * @return the savePayment + */ + public boolean isSavePayment() + { + return savePayment; + } + + /** + * @param savePayment + * the savePayment to set + */ + public void setSavePayment(final boolean savePayment) + { + this.savePayment = savePayment; + } + + /** + * @return the paymentId + */ + public String getPaymentId() + { + return paymentId; + } + + /** + * @param paymentId + * the paymentId to set + */ + public void setPaymentId(final String paymentId) + { + this.paymentId = paymentId; + } + + /** + * @return the cardTypeCode + */ + public String getCardTypeCode() + { + return cardTypeCode; + } + + /** + * @param cardTypeCode + * the cardTypeCode to set + */ + public void setCardTypeCode(final String cardTypeCode) + { + this.cardTypeCode = cardTypeCode; + } + + /** + * @return the nameOnCard + */ + public String getNameOnCard() + { + return nameOnCard; + } + + /** + * @param nameOnCard + * the nameOnCard to set + */ + public void setNameOnCard(final String nameOnCard) + { + this.nameOnCard = nameOnCard; + } + + /** + * @return the cardNumber + */ + public String getCardNumber() + { + return cardNumber; + } + + /** + * @param cardNumber + * the cardNumber to set + */ + public void setCardNumber(final String cardNumber) + { + this.cardNumber = cardNumber; + } + + /** + * @return the startMonth + */ + public String getStartMonth() + { + return startMonth; + } + + /** + * @param startMonth + * the startMonth to set + */ + public void setStartMonth(final String startMonth) + { + this.startMonth = startMonth; + } + + /** + * @return the startYear + */ + public String getStartYear() + { + return startYear; + } + + /** + * @param startYear + * the startYear to set + */ + public void setStartYear(final String startYear) + { + this.startYear = startYear; + } + + /** + * @return the expiryMonth + */ + public String getExpiryMonth() + { + return expiryMonth; + } + + /** + * @param expiryMonth + * the expiryMonth to set + */ + public void setExpiryMonth(final String expiryMonth) + { + this.expiryMonth = expiryMonth; + } + + /** + * @return the expiryYear + */ + public String getExpiryYear() + { + return expiryYear; + } + + /** + * @param expiryYear + * the expiryYear to set + */ + public void setExpiryYear(final String expiryYear) + { + this.expiryYear = expiryYear; + } + + /** + * @return the issueNumber + */ + public String getIssueNumber() + { + return issueNumber; + } + + /** + * @param issueNumber + * the issueNumber to set + */ + public void setIssueNumber(final String issueNumber) + { + this.issueNumber = issueNumber; + } + + /** + * @return the saveInAccount + */ + public Boolean getSaveInAccount() + { + return saveInAccount; + } + + /** + * @param saveInAccount + * the saveInAccount to set + */ + public void setSaveInAccount(final Boolean saveInAccount) + { + this.saveInAccount = saveInAccount; + } + + /** + * @return the newBillingAddress + */ + public Boolean getNewBillingAddress() + { + return newBillingAddress; + } + + /** + * @param newBillingAddress + * the newBillingAddress to set + */ + public void setNewBillingAddress(final Boolean newBillingAddress) + { + this.newBillingAddress = newBillingAddress; + } + + /** + * @return the billingAddress + */ + public AddressForm getBillingAddress() + { + return billingAddress; + } + + /** + * @param billingAddress + * the billingAddress to set + */ + public void setBillingAddress(final AddressForm billingAddress) + { + this.billingAddress = billingAddress; + } + /** + * @return the issuerId + */ + public String getIssuerId() + { + return issuerId; + } + + /** + * @param issuerId + * the issuerId to set + */ + public void setIssuerId(String issuerId) + { + this.issuerId = issuerId; + } + + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/HPPDataForm.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/HPPDataForm.java new file mode 100644 index 000000000..33b2ff5e5 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/HPPDataForm.java @@ -0,0 +1,33 @@ +/** + * + */ +package com.adyen.storefront.forms; + +import java.util.HashMap; + + +/** + * @author delli + * + */ +public class HPPDataForm +{ + private HashMap hppDataMap; + + /** + * @return the hppDataMap + */ + public HashMap getHppDataMap() + { + return hppDataMap; + } + + /** + * @param hppDataMap + * the hppDataMap to set + */ + public void setHppDataMap(final HashMap hppDataMap) + { + this.hppDataMap = hppDataMap; + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/validation/AdyenPaymentDetailsValidator.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/validation/AdyenPaymentDetailsValidator.java new file mode 100644 index 000000000..112be2a26 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/com/adyen/storefront/forms/validation/AdyenPaymentDetailsValidator.java @@ -0,0 +1,129 @@ +/** + * + */ +package com.adyen.storefront.forms.validation; + +import java.util.Calendar; + +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; +import org.springframework.validation.Validator; + +import com.adyen.storefront.forms.AdyenPaymentDetailsForm; + + +/** + * @author Kenneth Zhou + * + */ +@Component("adyenPaymentDetailsValidator") +public class AdyenPaymentDetailsValidator implements Validator +{ + + /* + * (non-Javadoc) + * + * @see org.springframework.validation.Validator#supports(java.lang.Class) + */ + @Override + public boolean supports(final Class aClass) + { + return AdyenPaymentDetailsForm.class.equals(aClass); + } + + /* + * (non-Javadoc) + * + * @see org.springframework.validation.Validator#validate(java.lang.Object, org.springframework.validation.Errors) + */ + @Override + public void validate(final Object object, final Errors errors) + { + final AdyenPaymentDetailsForm form = (AdyenPaymentDetailsForm) object; + + final Calendar start = parseDate(form.getStartMonth(), form.getStartYear()); + final Calendar expiration = parseDate(form.getExpiryMonth(), form.getExpiryYear()); + + if (start != null && expiration != null && start.after(expiration)) + { + errors.rejectValue("startMonth", "payment.startDate.invalid"); + } + if (Boolean.TRUE.equals(form.getUseBoleto())) + { + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "boleto.firstName.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "boleto.lastName.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "selectedBrand", "boleto.selectedBrand.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "socialSecurityNumber", "boleto.socialSecurityNumber.invalid"); + } + + + final boolean editMode = StringUtils.isNotBlank(form.getPaymentId()); + if (editMode || Boolean.TRUE.equals(form.getNewBillingAddress())) + { + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.titleCode", "address.title.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.firstName", "address.firstName.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.lastName", "address.lastName.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.line1", "address.line1.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.townCity", "address.townCity.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.postcode", "address.postcode.invalid"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.countryIso", "address.country.invalid"); + // ValidationUtils.rejectIfEmptyOrWhitespace(errors, "billingAddress.line2", "address.line2.invalid"); // for some addresses this field is required by cybersource + } + } + + protected Calendar parseDate(final String month, final String year) + { + if (StringUtils.isNotBlank(month) && StringUtils.isNotBlank(year)) + { + final Integer yearInt = getIntegerForString(year); + final Integer monthInt = getIntegerForString(month); + + if (yearInt != null && monthInt != null) + { + final Calendar date = getCalendarResetTime(); + date.set(Calendar.YEAR, yearInt.intValue()); + date.set(Calendar.MONTH, monthInt.intValue() - 1); + date.set(Calendar.DAY_OF_MONTH, 1); + return date; + } + } + return null; + } + + protected Calendar getCalendarResetTime() + { + final Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar; + } + + /** + * Common method to convert a String to an Integer. + * + * @param value + * - the String value to be converted. + * @return - an Integer object. + */ + protected Integer getIntegerForString(final String value) + { + if (value != null && !value.isEmpty()) + { + try + { + return Integer.valueOf(value); + } + catch (final Exception ignore) + { + // Ignore + } + } + + return null; + } + +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/de/hybris/platform/storefront/controllers/ControllerConstants.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/de/hybris/platform/storefront/controllers/ControllerConstants.java new file mode 100644 index 000000000..35411a065 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/src/de/hybris/platform/storefront/controllers/ControllerConstants.java @@ -0,0 +1,55 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package de.hybris.platform.storefront.controllers; + +public interface ControllerConstants +{ + String ADDON_PREFIX = "addon:/adyenAddon/"; + + /** + * Class with view name constants + */ + interface Views + { + + interface Pages + { + + interface MultiStepCheckout + { + String AddEditDeliveryAddressPage = ADDON_PREFIX + "pages/checkout/multi/addEditDeliveryAddressPage"; + String ChooseDeliveryMethodPage = ADDON_PREFIX + "pages/checkout/multi/chooseDeliveryMethodPage"; + String ChoosePickupLocationPage = ADDON_PREFIX + "pages/checkout/multi/choosePickupLocationPage"; + String AddPaymentMethodPage = ADDON_PREFIX + "pages/checkout/multi/addPaymentMethodPage"; + String CheckoutSummaryPage = ADDON_PREFIX + "pages/checkout/multi/checkoutSummaryPage"; + String HostedOrderPageErrorPage = ADDON_PREFIX + "pages/checkout/multi/hostedOrderPageErrorPage"; + String HostedOrderPostPage = ADDON_PREFIX + "pages/checkout/multi/hostedOrderPostPage"; + String SilentOrderPostPage = ADDON_PREFIX + "pages/checkout/multi/silentOrderPostPage"; + String GiftWrapPage = ADDON_PREFIX + "pages/checkout/multi/giftWrapPage"; + String Validate3DSecurePaymentPage = ADDON_PREFIX + "pages/checkout/multi/adyen-3d-secure-payment-validation"; + } + } + + interface Fragments + { + + interface Checkout + { + String TermsAndConditionsPopup = ADDON_PREFIX + "fragments/checkout/termsAndConditionsPopup"; + String BillingAddressForm = ADDON_PREFIX + "fragments/checkout/billingAddressForm"; + } + + } + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/testsrc/de/hybris/platform/storefront/controllers/pages/checkout/steps/MultiStepCheckoutControllerTest.java b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/testsrc/de/hybris/platform/storefront/controllers/pages/checkout/steps/MultiStepCheckoutControllerTest.java new file mode 100644 index 000000000..5450c1cb3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/testsrc/de/hybris/platform/storefront/controllers/pages/checkout/steps/MultiStepCheckoutControllerTest.java @@ -0,0 +1,120 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package de.hybris.platform.storefront.controllers.pages.checkout.steps; + +import de.hybris.bootstrap.annotations.UnitTest; +import de.hybris.platform.acceleratorfacades.flow.CheckoutFlowFacade; +import de.hybris.platform.acceleratorfacades.order.AcceleratorCheckoutFacade; +import de.hybris.platform.acceleratorfacades.order.AcceleratorCheckoutFacade.ExpressCheckoutResult; +import de.hybris.platform.acceleratorstorefrontcommons.constants.WebConstants; +import de.hybris.platform.commercefacades.order.data.CartModificationData; +import de.hybris.platform.commercefacades.order.data.CartRestorationData; +import de.hybris.platform.servicelayer.session.SessionService; + +import java.util.Collections; + +import junit.framework.Assert; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.BDDMockito; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.ui.Model; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + + +@UnitTest +public class MultiStepCheckoutControllerTest +{ + + @Mock + private SessionService sessionService; + + @Mock + private Model model; + + @Mock + private RedirectAttributes redirectModel; + + @Mock + private AcceleratorCheckoutFacade checkoutFacade; + + @Mock + private CheckoutFlowFacade checkoutFlowFacade; + + @Before + public void setUp() + { + MockitoAnnotations.initMocks(this); + } + + @Test + public void shouldDirectToCartRestorationReturned() throws Exception + { + final MultiStepCheckoutController controller = getMultiStepCheckoutController(); + + final CartRestorationData cartRestoration = BDDMockito.mock(CartRestorationData.class); + final CartModificationData modification = BDDMockito.mock(CartModificationData.class); + + BDDMockito.given(cartRestoration.getModifications()).willReturn(Collections.singletonList(modification)); + BDDMockito.given(sessionService.getAttribute(WebConstants.CART_RESTORATION)).willReturn(cartRestoration); + + Assert.assertEquals("redirect:/cart", controller.performExpressCheckout(model, redirectModel)); + } + + + @Test + public void shouldDirectToSummaryNoCartRestorationReturned() throws Exception + { + final MultiStepCheckoutController controller = getMultiStepCheckoutController(); + + BDDMockito.given(Boolean.valueOf(checkoutFlowFacade.hasValidCart())).willReturn(Boolean.TRUE); + BDDMockito.given(checkoutFacade.performExpressCheckout()).willReturn(ExpressCheckoutResult.SUCCESS); + BDDMockito.given(sessionService.getAttribute(WebConstants.CART_RESTORATION)).willReturn(null); + + Assert.assertEquals("redirect:/checkout/multi/summary/view", controller.performExpressCheckout(model, redirectModel)); + } + + /** + * Inner class needed to access the sessionService of AbstractPageController + * + * @return + */ + public MultiStepCheckoutController getMultiStepCheckoutController() + { + return new MultiStepCheckoutController() + { + + @Override + protected AcceleratorCheckoutFacade getCheckoutFacade() + { + return checkoutFacade; + } + + @Override + protected CheckoutFlowFacade getCheckoutFlowFacade() + { + return checkoutFlowFacade; + } + + @Override + protected SessionService getSessionService() + { + return sessionService; + } + }; + + } +} diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js.properties new file mode 100644 index 000000000..43b1cad48 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js.properties @@ -0,0 +1,2 @@ +key.1=value 1 +key.2=value 2 diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js_de.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js_de.properties new file mode 100644 index 000000000..43d8e9cfe --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.js_de.properties @@ -0,0 +1,2 @@ +key.1=value 1 DE +key.2=value 2 DE diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties new file mode 100644 index 000000000..b15cd68d1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base.properties @@ -0,0 +1,2 @@ +# put localizations or messages used in your web application into this file +# diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_de.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_de.properties new file mode 100644 index 000000000..553cad482 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_de.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Geben Sie eine Lieferadresse für die Bestellung an +checkout.deliveryMethod.notSelected = Wählen Sie eine Lieferart für die Bestellung +checkout.error.authorization.failed = Leider konnte Ihre Transaktion zu diesem Zeitpunkt nicht abgeschlossen werden. Versuchen Sie es zu einem späteren Zeitpunkt erneut oder wenden Sie sich unter 555-555-5555 an den Kundendienst +checkout.error.cart.notcalculated = Leider konnte Ihre Transaktion zu diesem Zeitpunkt nicht abgeschlossen werden. Versuchen Sie es zu einem späteren Zeitpunkt erneut oder wenden Sie sich unter 555-555-5555 an den Kundendienst +checkout.error.payment.not.accepted = Ihre Zahlung wurde abgelehnt. Überprüfen Sie, ob Ihre Zahlungsdetails richtig sind. +checkout.error.paymentethod.formentry.invalid = Überprüfen Sie Ihre Zahlungsdetails oder geben Sie eine andere Zahlungsmethode an. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = Die Nummer des Warenkorbs ist nicht gültig +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = Der Typ des Warenkorbs wird nicht unterstützt +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = Der Sicherheitscode ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = Der Ablaufmonat ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = Das Ablaufjahr ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = Die Ausstellungsnummer ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = Der Startmonat ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = Das Startjahr ist ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Dieser Wert ist für dieses Feld ungültig +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Geben Sie die Kartennummer ein +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Wählen Sie den Typ des Warenkorbs +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Geben Sie einen Ablaufmonat ein +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Geben Sie einen Ablaufmonat ein +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Geben Sie eine Ausstellungsnummer ein +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Geben Sie einen Startmonat ein +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Geben Sie ein Startjahr ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Geben Sie einen Wert für dieses Feld ein +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Geben Sie einen Wert für dieses Feld ein +checkout.error.tax.missing = Leider konnte Ihre Transaktion zu diesem Zeitpunkt nicht abgeschlossen werden. Versuchen Sie es zu einem späteren Zeitpunkt erneut oder wenden Sie sich unter 555-555-5555 an den Kundendienst +checkout.error.terms.not.accepted = Akzeptieren Sie die Allgemeinen Geschäftsbedingungen, um Ihre Bestellung aufgeben zu können. +checkout.information.delivery.method.changed = Die von Ihnen gewählte Lieferart wurde aufgrund Ihres Lieferorts geändert. + +checkout.multi.addEditform = Verwenden Sie dieses Formular zum Hinzufügen/Bearbeiten von Adressen. +checkout.multi.address.added = Ihre Adresse wurde erstellt. +checkout.multi.address.updated = Ihre Adresse wurde aktualisiert +checkout.multi.addressDetails = Adressdaten +checkout.multi.breadcrumb = Bezahlen +checkout.multi.cancel = Abbrechen +checkout.multi.confirmOrder = Abschließende Prüfung +checkout.multi.deliveryAddress = Lieferungs-/Abholungsstandort +checkout.multi.deliveryAddress.addAddress = Neue Adresse hinzufügen +checkout.multi.deliveryAddress.address = Adresse +checkout.multi.deliveryAddress.addressBook = Adressbuch +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = Oder verwenden Sie Ihre alte Adresse: +checkout.multi.deliveryAddress.breadcrumb = Lieferungs-/Abholungsstandort +checkout.multi.deliveryAddress.continue = Weiter +checkout.multi.deliveryAddress.edit = Bearbeiten +checkout.multi.deliveryAddress.editAddress = Adresse bearbeiten +checkout.multi.deliveryAddress.noExistingAddresses = Ihr Adressbuch ist leer. +checkout.multi.deliveryAddress.noSuggestedAddresses = Keine Adressvorschläge +checkout.multi.deliveryAddress.remove = Entfernen +checkout.multi.deliveryAddress.select = Auswahl +checkout.multi.deliveryAddress.selectAddressMessage = Wählen Sie eine vorhandene Adresse für Ihre Lieferung aus. +checkout.multi.deliveryAddress.selectSuggestedAddress = Überprüfen Sie Ihre Adresse.
Änderungsvorschläge für die von Ihnen eingegebene Adresse: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Wie gesehen einreichen +checkout.multi.deliveryAddress.stepHeader = 1 - Lieferadresse auswählen +checkout.multi.deliveryAddress.stepHeader.done = 1 - Lieferadresse +checkout.multi.deliveryAddress.useThisAddress = Diese Adresse verwenden +checkout.multi.deliveryMethod = Liefermethode +checkout.multi.deliveryMethod.breadcrumb = Liefermethode +checkout.multi.deliveryMethod.continue = Weiter +checkout.multi.deliveryMethod.deliveryOptions = Lieferoptionen +checkout.multi.deliveryMethod.edit = Bearbeiten +checkout.multi.deliveryMethod.header = Lieferoptionen +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Es ist keine Lieferart vorhanden. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Liefermethode +checkout.multi.deliveryMethod.stepHeader = 2 - Lieferart auswählen +checkout.multi.deliveryMethod.stepHeader.done = 2 - Lieferart +checkout.multi.deliveryMethod.useThisDeliveryMethod = Ausgewählte Lieferart verwenden +checkout.multi.hostedOrderPageError.ERROR.150 = Allgemeiner Systemfehler. Warten Sie kurz und versuchen Sie, die Bestellung erneut abzusenden. +checkout.multi.hostedOrderPageError.ERROR.151 = Die Anforderung wurde empfangen, aber es trat ein Server-Timeout auf. Kontaktieren Sie unser Verkaufsteam und senden Sie dann die Anforderung erneut ab, um Duplikate zu vermeiden. +checkout.multi.hostedOrderPageError.ERROR.152 = Die Anforderung wurde empfangen, aber ein Dienst wurde nicht rechtzeitig ausgeführt. Kontaktieren Sie unser Verkaufsteam und senden Sie dann die Anforderung erneut ab, um Duplikate zu vermeiden. +checkout.multi.hostedOrderPageError.breadcrumb = Fehler +checkout.multi.hostedOrderPageError.continue = Weiter +checkout.multi.hostedOrderPageError.globalError = Die Mitgliedschaft konnte nicht eingerichtet werden. Details zu den Fehlern sind unten aufgeführt. +checkout.multi.hostedOrderPageError.header = Fehlerdetails +checkout.multi.hostedOrderPostPage.button.submit = Absenden +checkout.multi.hostedOrderPostPage.header.debug = Diese Seite zeigt alle Hosted Order Page (HOP)-API-Felder an, die an die HOP-URL gesendet werden. Sie kann zum Debuggen der HOP verwendet werden, indem die Werte so angepasst werden, dass das gewünschte Verhalten simuliert wird. +checkout.multi.hostedOrderPostPage.header.wait = Ihre Übertragung läuft, bitte warten +checkout.multi.items.to.pickup = Abholen: +checkout.multi.next = Weiter » +checkout.multi.order.summary = Bestellungszusammenfassung +checkout.multi.payment = Zahlung: +checkout.multi.paymentMethod = Zahlungs- und Rechnungsadresse +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Rechnungsadresse +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Wenn Ihre Rechnungsadresse sich von Ihrer Lieferadresse unterscheidet, geben Sie Ihre Rechnungsadresse in diesem Formular an +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Eine andere Rechnungsadresse eingeben +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Geben Sie Ihre Kartendaten für die Zahlung ein +checkout.multi.paymentMethod.addPaymentDetails.generalError = Während der Kontaktaufnahme zum Zahlungsanbieter ist ein Problem aufgetreten. Warten Sie einige Minuten und versuchen Sie es erneut. Wenn das Problem weiterhin auftritt, wenden Sie sich an unser Vertriebsteam. +checkout.multi.paymentMethod.addPaymentDetails.header = Zahlungsdetails +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Kartendetails +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Diese Zahlungsdetails für mein Konto speichern +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Eine gespeicherte Karte verwenden +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Registrierte Kunden können eine zuvor gespeicherte Karte verwenden +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Diese Zahlungsdetails verwenden +checkout.multi.paymentMethod.breadcrumb = Zahlungs- und Rechnungsadresse +checkout.multi.paymentMethod.continue = Weiter +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Geben Sie eine Rechnungsadresse ein oder geben Sie zuerst eine Lieferadresse an, die als Rechnungsadresse verwendet werden soll. +checkout.multi.paymentMethod.createSubscription.failedMsg = Die Mitgliedschaft konnte nicht eingerichtet werden. Überprüfen Sie die eingegebenen Werte. +checkout.multi.paymentMethod.edit = Bearbeiten +checkout.multi.paymentMethod.paymentDetails.expires = Gültig bis {0}/{1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Keine ausgewählt +checkout.multi.paymentMethod.savedCards.actions = Aktionen +checkout.multi.paymentMethod.savedCards.billingAddress = Rechnungsadresse +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Neue Zahlungsdetails eingeben +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = Sie haben keine gespeicherten Karten +checkout.multi.paymentMethod.savedCards.paymentCard = Zahlungskarte +checkout.multi.paymentMethod.savedCards.select = Auswahl +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Wählen Sie vorhandene Zahlungsdetails aus oder geben Sie neue Zahlungsdetails ein +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Zahlungsdetails auswählen +checkout.multi.paymentMethod.viewSavedPayments = Gespeicherte Zahlungen anzeigen +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Weitere Informationen erhalten Sie im Bereich "Bestellungszusammenfassung". +checkout.multi.pickup.items = Abholung von #{0} - {1} Artikel(n) +checkout.multi.pickupInStore = In Verkaufsstelle abholen +checkout.multi.pickupInStore.confirm.and.continue = Bestätigen Sie einfach die nachfolgenden Informationen, fahren Sie mit dem nächsten Schritt an der Kasse fort. +checkout.multi.saveAddress = Adresse speichern +checkout.multi.secure.checkout = Sichere Kasse +checkout.multi.shipment.items = Lieferung – {0} Artikel +checkout.multi.shipment.pickup.location = Lieferungs-/Abholungsstandort +checkout.multi.sop.globalError = Beim Bearbeiten Ihrer Anfrage ist ein Fehler aufgetreten. Allgemeiner Systemfehler. Warten Sie kurz und versuchen Sie, die Bestellung erneut abzusenden. +checkout.multi.sop.remove = Entfernen +checkout.multi.sop.savePaymentInfo = Zahlungsinformationen speichern +checkout.multi.sop.useMyDeliveryAddress = Meine Lieferadresse verwenden +checkout.multi.sop.useThisPaymentInfo = Diese Zahlungsinformationen verwenden +checkout.multi.summary.breadcrumb = Abschließende Prüfung +checkout.multi.deliveryAddress.notprovided = Sie müssen eine Lieferadresse angeben, um zum nächsten Schritt zu wechseln. +checkout.multi.deliveryMethod.notprovided = Sie müssen eine Lieferoption angeben, um zum nächsten Schritt zu wechseln. +checkout.multi.paymentDetails.notprovided = Sie müssen Zahlungsdetails angeben, um zum nächsten Schritt zu wechseln. +checkout.orderConfirmation.copySentTo = Eine Kopie Ihrer Bestelldetails wurde an {0} gesendet +checkout.orderConfirmation.orderNumber = Ihre Bestellnummer lautet {0} +checkout.orderConfirmation.orderNumberShort = Bestellung # {0} +checkout.orderConfirmation.orderStatus = Bestellstatus : {0} +checkout.orderConfirmation.pickupItems = {0} Artikel zur Abholung in Verkaufsstelle +checkout.orderConfirmation.pickupPoints = {0} Lagerabholstandort(e) +checkout.orderConfirmation.checkoutSuccessful = Bezahlen erfolgreich +checkout.orderConfirmation.success = Ihre Bestellung war erfolgreich! +checkout.orderConfirmation.summary = Nachfolgend finden Sie eine Zusammenfassung Ihrer Bestellung: +checkout.orderConfirmation.thankYou = Vielen Dank für Ihre Bestellung. Ihre Bestellnummer lautet {0} +checkout.orderConfirmation.thankYouForOrder = Ihre Bestellung war erfolgreich. Vielen Dank für Ihren Einkauf. +checkout.orderConfirmation.yourItems = Ihre Artikel +checkout.orderConfirmation.continueShopping = Einkauf fortsetzen +checkout.orderDetails.hide = [-] Bestelldetails ausblenden +checkout.orderDetails.show = [+] Bestelldetails einblenden +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Geben Sie eine Rechnungsadresse ein oder geben Sie zuerst eine Lieferadresse an, die als Rechnungsadresse verwendet werden soll. +checkout.paymentMethod.createSubscription.failed = Die Mitgliedschaft konnte nicht eingerichtet werden. Überprüfen Sie die eingegebenen Werte. +checkout.paymentMethod.noSecurityCode = Geben Sie den Sicherheitscode ein. +checkout.paymentMethod.notSelected = Geben Sie Ihre Zahlungsdetails für die Bestellung an +checkout.pickup.confirm.and.continue = Bestätigen Sie einfach die nachfolgenden Informationen, fahren Sie mit dem nächsten Schritt an der Kasse fort. +checkout.pickup.continue.button = Weiter +checkout.pickup.estimated.total = Geschätzte Gesamtmenge: +checkout.pickup.items.appear.later = Abzuholende Bestellartikel werden später an der Kasse angezeigt +checkout.pickup.items.at.one.location = Alle zur Abholung ausgewählten Artikel sind gegenwärtig an den folgenden Standorten vorrätig: +checkout.pickup.items.available.at.one.location = IHRE ABHOLARTIKEL SIND AM STANDORT VORRÄTIG (Wirkt sich nicht auf die Lieferbestellungen aus) +checkout.pickup.items.simplify.pickup.location = Ich möchte meine Bestellung ändern, um alle Artikel an derselben Verkaufsstelle abzuholen +checkout.pickup.items.to.be.delivered = Zu liefernde Artikel +checkout.pickup.items.to.be.shipped = Liefern an: +checkout.pickup.items.to.pickup = {0} Element(e) abzuholen +checkout.pickup.no.delivery.required = Für diese Bestellung keine Lieferung erforderlich +checkout.pickup.pickup.in.store = In Verkaufsstelle abholen - {0}, {1} +checkout.pickup.pickup.in.store.title = IN VERKAUFSSTELLE ABHOLEN +checkout.pickup.simplifyPickup = Abholstandort vereinfachen +checkout.pickup.store.destinations = {0} Lagerabholstandorte +checkout.placeOrder.failed = Die Bestellung konnte nicht aufgegeben werden +checkout.security.code = Sicherheitscode +checkout.summary.edit = Bearbeiten +checkout.summary.deliveryAddress = Adresse +checkout.summary.deliveryAddress.edit = Bearbeiten +checkout.summary.deliveryAddress.editDeliveryAddressButton = Adresse bearbeiten +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Adresse bearbeiten +checkout.summary.deliveryAddress.header = Adresse +checkout.summary.deliveryAddress.noExistingAddresses = Ihr Adressbuch ist leer. +checkout.summary.deliveryAddress.noneSelected = Keine ausgewählt +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Lieferadresse speichern +checkout.summary.deliveryAddress.saveAndUseThisAddress = Diese Adresse speichern und verwenden +checkout.summary.deliveryAddress.selectExistingAddress = Bestehende Adresse auswählen +checkout.summary.deliveryAddress.useForNewAddress = Bitte verwenden Sie dieses Formular zur Eingabe einer neuen Adresse +checkout.summary.deliveryAddress.useThisAddress = Diese Adresse verwenden +checkout.summary.deliveryMode.editDeliveryMethod = Lieferart bearbeiten +checkout.summary.deliveryMode.header = Lieferoptionen +checkout.summary.deliveryMode.items.for.pickup = {0} Artikel zur Abholung in Verkaufsstelle +checkout.summary.deliveryMode.noneSelected = Keine ausgewählt +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} Lagerabholstandorte +checkout.summary.deliveryMode.selectDeliveryMethod = Lieferart auswählen +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Liefermethode +checkout.summary.deliveryMode.useThisDeliveryMethod = Diese Lieferart verwenden +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Rechnungsadresse +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Wenn Ihre Rechnungsadresse sich von Ihrer Lieferadresse unterscheidet, geben Sie Ihre Rechnungsadresse in diesem Formular an +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Eine andere Rechnungsadresse eingeben +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Geben Sie Ihre Kartendaten für die Zahlung ein +checkout.summary.paymentMethod.addPaymentDetails.header = Zahlungsdetails +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Zahlungskarte +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Diese Zahlungsdetails speichern und verwenden +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Diese Zahlungsdetails für mein Konto speichern +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Eine gespeicherte Karte verwenden +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Registrierte Kunden können eine zuvor gespeicherte Karte verwenden +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Diese Zahlungsdetails verwenden +checkout.summary.paymentMethod.billingAddress.header = Rechnungsadresse: +checkout.summary.paymentMethod.editPaymentMethod = Zahlungsart bearbeiten +checkout.summary.paymentMethod.header = Zahlungsdetails +checkout.summary.paymentMethod.paymentDetails.expires = Gültig bis {0}/{1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Keine ausgewählt +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Diese Zahlungsdetails verwenden +checkout.summary.paymentMethod.savedCards.actions = Aktionen +checkout.summary.paymentMethod.savedCards.billingAddress = Rechnungsadresse +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Neue Zahlungsdetails eingeben +checkout.summary.paymentMethod.savedCards.header = Zahlungsdetails auswählen +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = Sie haben keine gespeicherten Karten +checkout.summary.paymentMethod.savedCards.paymentCard = Zahlungskarte +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Wählen Sie vorhandene Zahlungsdetails aus oder geben Sie neue Zahlungsdetails ein +checkout.summary.paymentMethod.securityCode = Sicherheitscode +checkout.summary.paymentMethod.securityCode.whatIsThis = (Was ist das?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Die letzten 3 Ziffern auf dem Unterschriftsfeld auf der Rückseite der Karte. Bei American Express sind es die 4 Zahlen direkt über dem Hologramm auf der Vorderseite der Karte. +checkout.summary.placeOrder = Bestellung abschicken +checkout.summary.placeOrder.readTermsAndConditions = Durch das Abschicken der Bestellung bestätige ich, dass ich die Allgemeinen Geschäftsbedingungen gelesen habe, und erkläre mich mit ihnen einverstanden +checkout.summary.placeOrder.readTermsAndConditions.close = Schließen +checkout.summary.reviewYourOrder = Abschließende Prüfung +checkout.summary.reviewYourOrderMessage = Überprüfen Sie sorgfältig Ihre Bestellung! +checkout.summary.select.payment.method = Zahlungsart auswählen +checkout.summary.shippingAddress = Adresse + +checkout.express.error.notAvailable = Direktzahlung ist nicht verfügbar, weil sie deaktiviert wurde. +checkout.express.error.deliveryAddress = Direktzahlung ist nicht verfügbar, weil Sie keine standardmäßige Lieferadresse haben. Geben Sie eine standardmäßige Lieferadresse in Ihrem Konto an, um die Direktzahlung beim nächsten Mal zu verwenden. +checkout.express.error.deliveryMode = Direktzahlung ist nicht verfügbar. Beim Festlegen des Liefermodus ist ein Fehler aufgetreten. +checkout.express.error.paymentInfo = Direktzahlung ist nicht verfügbar, weil Sie keine standardmäßigen Zahlungsinfos angegeben haben. Geben Sie standardmäßige Zahlungsinfos in Ihrem Konto an, um die Direktzahlung beim nächsten Mal zu verwenden. + + +payment.cardNumber = Kartennummer +payment.cardNumber.invalid = Geben Sie eine gültige Kartennummer ein +payment.cardType = Kartentyp +payment.cardType.invalid = Wählen Sie einen Kartentyp aus +payment.cardType.pleaseSelect = Wählen Sie einen Kartentyp aus +payment.cvn = Kartenprüfziffer +payment.expiryDate = Gültig bis* +payment.expiryMonth.invalid = Wählen Sie den Monat aus, in dem Ihre Karte abläuft +payment.expiryYear.invalid = Wählen Sie das Jahr aus, in dem Ihre Karte abläuft +payment.issueNumber = Ausstellungsnummer +payment.issueNumber.invalid = In diesem Feld sind ausschließlich Zahlen erlaubt +payment.issueNumber.toolong = Die Ausstellungsnummer ist zu lang. +payment.month = Monat +payment.nameOnCard = Karteninhaber +payment.nameOnCard.invalid = Geben Sie den Namen des Karteninhabers ein +payment.startDate = Gültig ab (nur Maestro/Solo/Switch) +payment.startDate.invalid = Das Startdatum muss dem Ablaufdatum vorausgehen +payment.year = Jahr + +paymentMethod.billingAddress.header = Rechnungsadresse: +paymentMethod.header = Zahlungsdetails + +mobile.checkout.cart.viewFullCart = Warenkorb anzeigen +mobile.checkout.cart.viewLess = Weniger anzeigen +mobile.checkout.confirmOrder = Abschließende Prüfung +mobile.checkout.continue.button = Weiter +mobile.checkout.continue.shopping = Einkauf fortsetzen +mobile.checkout.deliveryAddress = Adresse +mobile.checkout.deliveryAddress.selectAddressMessage = Wählen Sie eine Lieferadresse aus Ihrem Adressbuch oder fügen Sie eine neue hinzu +mobile.checkout.deliveryAddress.use = Verwenden +mobile.checkout.deliveryMethod = Lieferoptionen +mobile.checkout.edit.link = Bearbeiten +mobile.checkout.items.hide = Artikel ausblenden +mobile.checkout.items.show = Mehr Artikel anzeigen +mobile.checkout.paymentMethod = Zahlungsdetails +mobile.checkout.paymentMethod.add.card = Neue Karte hinzufügen +mobile.checkout.paymentMethod.addOrSelect.card = Wählen Sie eine gespeicherte Zahlungskarte aus Ihrer Geldbörse oder fügen Sie eine neue Karte hinzu +mobile.payment.issueNumber = Ausstellungsnummer (nur Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = Von vorhandenen Zahlungsdetails auswählen +mobile.checkout.multi.button.submit = Absenden + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties new file mode 100644 index 000000000..be97cf6a8 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_en.properties @@ -0,0 +1,319 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Please provide a delivery address for your order +checkout.deliveryMethod.notSelected = Please select a method of delivery for your order +checkout.error.authorization.failed = We are sorry but your transaction could not be completed at this time; please try again later or contact customer service at 555-555-5555 +checkout.error.cart.notcalculated = We are sorry but your transaction could not be completed at this time; please try again later or contact customer service at 555-555-5555 +checkout.error.payment.not.accepted = Your payment was declined. Please check your payment details are correct. +checkout.error.paymentethod.formentry.invalid = Please check your payment details are correct or provide a different payment method. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = The card number is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = The card type is not supported +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = The security code is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = The expiry month is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = The expiry year is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = The issue number is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = The start month is not valid +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = The start year is not valid +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = This value is invalid for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Please enter a card number +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Please select a cart type +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Please enter an expiry month +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Please enter an expiry year +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Please enter an issue number +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Please enter a start month +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Please enter a start year +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Please enter a value for this field +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Please enter a value for this field +checkout.error.tax.missing = We are sorry but your transaction could not be completed at this time; please try again later or contact customer service at 555-555-5555 +checkout.error.terms.not.accepted = Please accept our terms & conditions before submitting your order. +checkout.information.delivery.method.changed = Your delivery method has been updated based on your delivery location. + + + +checkout.multi.addEditform = Please use this form to add/edit an address. +checkout.multi.address.added = Your address was created. +checkout.multi.address.updated = Your address was updated +checkout.multi.addressDetails = Address Details +checkout.multi.breadcrumb = Checkout +checkout.multi.cancel = Cancel +checkout.multi.confirmOrder = Final Review +checkout.multi.deliveryAddress = Delivery Address +checkout.multi.deliveryAddress.addAddress = Add new address +checkout.multi.deliveryAddress.address = Address +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = Or keep your original address: +checkout.multi.deliveryAddress.breadcrumb = Delivery Address +checkout.multi.deliveryAddress.continue = Continue +checkout.multi.deliveryAddress.edit = Edit +checkout.multi.deliveryAddress.editAddress = Edit address +checkout.multi.deliveryAddress.noExistingAddresses = You don't have any addresses in your address book. +checkout.multi.deliveryAddress.noSuggestedAddresses = No address suggestions +checkout.multi.deliveryAddress.select = Select +checkout.multi.deliveryAddress.selectAddressMessage = Select an existing address for your delivery. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verify Your address.
We suggest you accept one of the following changes to your address: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Submit As Is +checkout.multi.deliveryAddress.stepHeader = 1 - Select Delivery Address +checkout.multi.deliveryAddress.stepHeader.done = 1 - Delivery Address +checkout.multi.deliveryMethod = Delivery Options +checkout.multi.deliveryMethod.breadcrumb = Delivery Options +checkout.multi.deliveryMethod.continue = Continue +checkout.multi.deliveryMethod.deliveryOptions = Delivery Options +checkout.multi.deliveryMethod.edit = Edit +checkout.multi.deliveryMethod.header = Delivery Options +checkout.multi.deliveryMethod.noExistingDeliveryMethod = No delivery method currently exist. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Please select the delivery method for your order. +checkout.multi.deliveryMethod.stepHeader = 2 - Select Delivery Method +checkout.multi.deliveryMethod.stepHeader.done = 2 - Delivery Method +checkout.multi.deliveryMethod.useThisDeliveryMethod = Use Selected Delivery Method +checkout.multi.hostedOrderPageError.ERROR.150 = General system failure. Possible action: Wait a few minutes and resend the order. +checkout.multi.hostedOrderPageError.ERROR.151 = The request was received, but a server time-out occurred. Possible action: To avoid duplicating the order, do not resend the request until you have contacted our sales team. +checkout.multi.hostedOrderPageError.ERROR.152 = The request was received, but a service did not finish running in time. Possible action: To avoid duplicating the order, do not resend the request until you have contacted our sales team. +checkout.multi.hostedOrderPageError.breadcrumb = Error +checkout.multi.hostedOrderPageError.continue = Continue +checkout.multi.hostedOrderPageError.globalError = Failed to create subscription. Please see error details below. +checkout.multi.hostedOrderPageError.header = Error Details +checkout.multi.hostedOrderPostPage.button.submit = Submit +checkout.multi.hostedOrderPostPage.header.debug = This page shows all of the Hosted Order Page (HOP) API fields that will be sent to the HOP URL. It can be used to debug the HOP by changing the values to simulate the desired behaviour. +checkout.multi.hostedOrderPostPage.header.wait = Please wait while we transfer you +checkout.multi.next = Next » +checkout.multi.paymentMethod.addPaymentDetails.savedAdyenPaymentMethods = Saved Cards +checkout.multi.paymentMethod.addPaymentDetails.useThisCardDetails = Use This Card +checkout.multi.paymentMethod.addPaymentDetails.savePaymentMethodToAdyen = Save this payment method to Adyen +checkout.multi.paymentMethod = Payment Details +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Billing Address +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = If your billing address is different to your delivery address, please use this form to enter your billing address +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Enter a different billing address +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Please enter your card details for payment +checkout.multi.paymentMethod.addPaymentDetails.generalError = An error occurred contacting the payment provider. Wait a few minutes and try again. If the problem persist, please contact our sales team. +checkout.multi.paymentMethod.addPaymentDetails.header = Payment Details +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Card Details +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Save these payment details in my account +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Use a saved card +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Registered customers may select a previously saved card +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Use these payment details +checkout.multi.paymentMethod.breadcrumb = Payment Details +checkout.multi.paymentMethod.continue = Continue +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Please enter a billing address or enter a delivery address first so that it can be used as billing address. +checkout.multi.paymentMethod.createSubscription.failedMsg = Failed to create subscription. Please check the values entered. +checkout.multi.paymentMethod.edit = Edit +checkout.multi.paymentMethod.paymentDetails.expires = Expires {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = None selected +checkout.multi.paymentMethod.savedCards.actions = Actions +checkout.multi.paymentMethod.savedCards.billingAddress = Billing Address +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Enter New Payment Details +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = You don't have any saved cards +checkout.multi.paymentMethod.savedCards.paymentCard = Payment Card +checkout.multi.paymentMethod.savedCards.select = Select +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Select existing payment details or enter new payment details +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Select Payment Details +checkout.multi.pickupInStore = Pick Up in Store +checkout.multi.pickupInStore.confirm.and.continue = Simply confirm the information below and continue to the next step of checkout. +checkout.multi.saveAddress = Save Address +checkout.multi.sop.globalError = An error occurred processing your request. Possible action: Wait a few minutes and resend the order. +checkout.multi.sop.remove = Remove +checkout.multi.sop.savePaymentInfo = Save Payment Info +checkout.multi.sop.useMyDeliveryAddress = Use my Delivery Address +checkout.multi.sop.useThisPaymentInfo = Use this payment info +checkout.multi.summary.breadcrumb = Summary +checkout.multi.deliveryAddress.notprovided = You must provide a delivery address in order to go to the next step. +checkout.multi.deliveryMethod.notprovided = You must provide a delivery option in order to go to the next step. +checkout.multi.paymentDetails.notprovided = You must provide a payment details in order to go to the next step. +checkout.orderConfirmation.copySentTo = A copy of your order details has been sent to {0} +checkout.orderConfirmation.orderNumber = Your order number is {0} +checkout.orderConfirmation.orderNumberShort = Order # {0} +checkout.orderConfirmation.orderStatus = Order Status : {0} +checkout.orderConfirmation.pickupItems = {0} Items for Pick Up in Store +checkout.orderConfirmation.pickupPoints = {0} Store Pick Up Destination(s) +checkout.orderConfirmation.success = Your order was successful! +checkout.orderConfirmation.summary = A summary of your order is below: +checkout.orderConfirmation.thankYou = Thank you for your order. Your order number is {0} +checkout.orderConfirmation.thankYouForOrder = Your order was successful! Thank you for shopping with us. +checkout.orderConfirmation.yourItems = Your Items +checkout.orderConfirmation.continueShopping = Continue Shopping +checkout.orderDetails.hide = [-] Hide Order Details +checkout.orderDetails.show = [+] View Order Details +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Please enter a billing address or enter a delivery address first so that it can be used as billing address. +checkout.paymentMethod.createSubscription.failed = Failed to create subscription. Please check the values entered. +checkout.paymentMethod.noSecurityCode = Please provide security code. +checkout.paymentMethod.notSelected = Please provide details of your payment for your order +checkout.pickup.confirm.and.continue = Simply confirm the information below and continue to the next step of checkout. +checkout.pickup.continue.button = Continue +checkout.pickup.estimated.total = Estimated Total: +checkout.pickup.items.appear.later = Order items to be picked up will appear later in the checkout +checkout.pickup.items.at.one.location = All items in your order selected for pickup are currently available at these store locations: +checkout.pickup.items.available.at.one.location = YOUR PICKUP ITEMS ARE AVAILABLE AT ONE LOCATION (Does not affect delivery orders) +checkout.pickup.items.simplify.pickup.location = I would like to change my order to pickup all my items in the same store +checkout.pickup.items.to.be.delivered = Items to be delivered +checkout.pickup.items.to.pickup = {0} item(s) to pickup +checkout.pickup.no.delivery.required = No delivery required for this order +checkout.pickup.pickup.in.store = Pickup in Store - {0}, {1} +checkout.pickup.pickup.in.store.title = PICKUP IN STORE +checkout.pickup.simplifyPickup = Simplify Pickup Location +checkout.pickup.store.destinations = {0} store pickup destination(s) +checkout.placeOrder.failed = Failed to place the order +checkout.security.code = Security Code +checkout.summary.edit = Edit +checkout.summary.deliveryAddress = Delivery Address +checkout.summary.deliveryAddress.edit = Edit +checkout.summary.deliveryAddress.editDeliveryAddressButton = Edit Delivery Address +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Edit Delivery Address +checkout.summary.deliveryAddress.header = Delivery Address +checkout.summary.deliveryAddress.noExistingAddresses = You don't have any addresses in your address book. +checkout.summary.deliveryAddress.noneSelected = None selected +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Save this address to my address book +checkout.summary.deliveryAddress.saveAndUseThisAddress = Save and use this address +checkout.summary.deliveryAddress.selectExistingAddress = Select Existing Address +checkout.summary.deliveryAddress.useForNewAddress = Please use this form to enter a new address +checkout.summary.deliveryAddress.useThisAddress = Use this address +checkout.summary.deliveryMode.editDeliveryMethod = Edit Delivery Method +checkout.summary.deliveryMode.header = Delivery Options +checkout.summary.deliveryMode.items.for.pickup = {0} Items for Pickup in Store +checkout.summary.deliveryMode.noneSelected = None selected +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} Store Pickup Destination(s) +checkout.summary.deliveryMode.selectDeliveryMethod = Select Delivery Method +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Please select the delivery method for your order +checkout.summary.deliveryMode.useThisDeliveryMethod = Use this delivery method +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Billing Address +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = If your billing address is different to your delivery address, please use this form to enter your billing address +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Enter a different billing address +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Please enter your card details for payment +checkout.summary.paymentMethod.addPaymentDetails.header = Payment Details +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Payment Card +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Save and use these payment details +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Save these payment details in my account +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Use a saved card +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Registered customers may select a previously saved card +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Use these payment details +checkout.summary.paymentMethod.billingAddress.header = Billing Address: +checkout.summary.paymentMethod.editPaymentMethod = Edit Payment Method +checkout.summary.paymentMethod.header = Payment Details +checkout.summary.paymentMethod.paymentDetails.expires = Expires {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = None selected +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Use these payment details +checkout.summary.paymentMethod.savedCards.actions = Actions +checkout.summary.paymentMethod.savedCards.billingAddress = Billing Address +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Enter new payment details +checkout.summary.paymentMethod.savedCards.header = Select Payment Details +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = You don't have any saved cards +checkout.summary.paymentMethod.savedCards.paymentCard = Payment Card +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Select existing payment details or enter new payment details +checkout.summary.paymentMethod.securityCode = Security Code +checkout.summary.paymentMethod.securityCode.whatIsThis = (What is this?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = The last 3 digits on the signature strip on the back of the card. For American Express, it's the 4 digits just above the hologram on the front of the card. +checkout.summary.placeOrder = Place Order +checkout.summary.placeOrder.readTermsAndConditions = I have read and agree with the Terms & Conditions +checkout.summary.reviewYourOrder = Final Review +checkout.summary.reviewYourOrderMessage = Please review your order carefully! +checkout.summary.select.payment.method = Select Payment Method + +checkout.express.error.notAvailable = Express checkout is not available since it is disabled. +checkout.express.error.deliveryAddress = Express checkout is not available since you do not have a default delivery address. Please set a default delivery address in your account to use Express Checkout next time. +checkout.express.error.deliveryMode = Express checkout is not available. An error occurred setting the delivery mode. +checkout.express.error.paymentInfo = Express checkout is not available since you do not have a default payment info. Please set a default payment info in your account to use Express Checkout next time. + + +payment.cardNumber = Card number +payment.cardNumber.invalid = Please enter a valid card number +payment.cardType = Card type +payment.cardType.invalid = Please select a card type +payment.cardType.pleaseSelect = Please select a card type +payment.cvn = Card Verification Number +payment.expiryDate = Expiry date* +payment.expiryMonth.invalid = Please select expiry month of the card +payment.expiryYear.invalid = Please select expiry year of the card +payment.issueNumber = Issue number +payment.issueNumber.invalid = Only numbers are allowed for that field +payment.issueNumber.toolong = The issue number is too long. +payment.month = Month +payment.nameOnCard = Name on card +payment.nameOnCard.invalid = Please enter name on the card +payment.startDate = Start date (Maestro / Solo / Switch only) +payment.startDate.invalid = Start date must precede the expiry date +payment.year = Year + +payment.installments.pleaseSelect = Please choose number of installments +payment.installments = Installments + +paymentMethod.billingAddress.header = Billing Address: +paymentMethod.header = Payment Details + +mobile.checkout.cart.viewFullCart = View Full Cart +mobile.checkout.cart.viewLess = View less +mobile.checkout.confirmOrder = Final Review +mobile.checkout.continue.button = Continue +mobile.checkout.continue.shopping = Continue Shopping +mobile.checkout.deliveryAddress = Delivery Address +mobile.checkout.deliveryAddress.selectAddressMessage = Choose a delivery address from your address book, or add a new one +mobile.checkout.deliveryAddress.use = Use +mobile.checkout.deliveryMethod = Delivery Options +mobile.checkout.edit.link = Edit +mobile.checkout.items.hide = Hide Items +mobile.checkout.items.show = Show more Items +mobile.checkout.paymentMethod = Payment Details +mobile.checkout.paymentMethod.add.card = Add New Card +mobile.checkout.paymentMethod.addOrSelect.card = Select a saved payment card from your wallet or add a new card +mobile.payment.issueNumber = Issue number (Maestro / Solo / Switch only) +checkout.multi.authorise.refused = Authorise is refused +checkout.multi.authorise.refusedWithreason = Authorise is refused :{0} +checkout.multi.3d.authorise.refused = Authorise is refused +checkout.multi.3d.authorise.refusedWithreason = Authorise is refused :{0} +checkout.multi.hpp.authorise.cancelled = Authorise is cancelled by user + +#adyen customer +boleto.firstName.invalid=Please input your first name to complete your Boleto payment. +boleto.lastName.invalid=Please input your last name to complete your Boleto payment. +boleto.selectedBrand.invalid=Please select Boleto brand. +boleto.socialSecurityNumber.invalid=Please input your social security number. + +payment.boleto=Boleto +payment.boleto.brands=Brands +payment.boleto.ssn=Social Security Number +payment.boleto.firstName=First Name +payment.boleto.lastName=Last Name +payment.boleto.shopperStatement=Statement +checkout.multi.paymentMethod.addPaymentDetails.useBoletoPayment=Use Boleto Payment +payment.boleto.brands.pleaseSelect=Please select Boleto brand + +checkout.multi.paymentMethod.addPaymentDetails.hpp.payment.methods = HPP Payment Methods +checkout.multi.paymentMethod.addPaymentDetails.hpp.default.payment = Pay +checkout.multi.paymentMethod.summary.hpp.selected.payment.method = Selected HPP Payment Method : +checkout.multi.paymentMethod.summary.pay.by.hpp = Pay by HPP +checkout.multi.paymentMethod.summary.download.boleto.pdf = Download Boleto PDF for your bank to process the payment +checkout.multi.paymentMethod.summary.download.boleto.pdf.button = Download Boleto PDF \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es.properties new file mode 100644 index 000000000..8be73648a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Proporcione una dirección de entrega para el pedido +checkout.deliveryMethod.notSelected = Seleccione un método de entrega para el pedido +checkout.error.authorization.failed = Lamentamos comunicarle que no se ha podido completar su operación en este momento. Inténtelo de nuevo más tarde o póngase en contacto con el servicio al cliente en el número 555-555-5555 +checkout.error.cart.notcalculated = Lamentamos comunicarle que no se ha podido completar su operación en este momento. Inténtelo de nuevo más tarde o póngase en contacto con el servicio al cliente en el número 555-555-5555 +checkout.error.payment.not.accepted = Se ha rechazado su pago. Compruebe que los detalles del pago sean correctos. +checkout.error.paymentethod.formentry.invalid = Compruebe que los detalles del pago sean correctos o proporcione un método de pago distinto. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = El número de tarjeta no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = No se admite el tipo de tarjeta +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = El código de seguridad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = El mes de caducidad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = El año de caducidad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = El número de emisión no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = El mes de inicio no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = El año de inicio no es válido +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Especifique un número de tarjeta +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Seleccione un tipo de tarjeta +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Especifique un mes de caducidad +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Especifique un año de caducidad +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Especifique un número de emisión +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Especifique un mes de inicio +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Especifique un año de inicio +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Especifique un valor para este campo +checkout.error.tax.missing = Lamentamos comunicarle que no se ha podido completar su operación en este momento. Inténtelo de nuevo más tarde o póngase en contacto con el servicio al cliente en el número 555-555-5555 +checkout.error.terms.not.accepted = Acepte nuestros términos y condiciones antes de enviar el pedido. +checkout.information.delivery.method.changed = Se ha actualizado su método de entrega en función de su ubicación de entrega. + +checkout.multi.addEditform = Utilice este formulario para añadir o editar una dirección. +checkout.multi.address.added = Se ha creado su dirección. +checkout.multi.address.updated = Se ha actualizado su dirección +checkout.multi.addressDetails = Detalles de la dirección +checkout.multi.breadcrumb = Pago +checkout.multi.cancel = Cancelar +checkout.multi.confirmOrder = Revisión final +checkout.multi.deliveryAddress = Ubicación de envío/recogida +checkout.multi.deliveryAddress.addAddress = Añadir dirección nueva +checkout.multi.deliveryAddress.address = Dirección +checkout.multi.deliveryAddress.addressBook = Libreta de direcciones +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = O conserve su dirección original: +checkout.multi.deliveryAddress.breadcrumb = Ubicación de envío/recogida +checkout.multi.deliveryAddress.continue = Siguiente +checkout.multi.deliveryAddress.edit = Editar +checkout.multi.deliveryAddress.editAddress = Editar dirección +checkout.multi.deliveryAddress.noExistingAddresses = No tiene ninguna dirección en su libreta de direcciones. +checkout.multi.deliveryAddress.noSuggestedAddresses = No hay sugerencias de direcciones +checkout.multi.deliveryAddress.remove = Eliminar +checkout.multi.deliveryAddress.select = Seleccionar +checkout.multi.deliveryAddress.selectAddressMessage = Seleccione una dirección existente para su entrega. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verifique su dirección.
Le sugerimos que acepte uno de los cambios siguientes en su dirección: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Enviar tal cual +checkout.multi.deliveryAddress.stepHeader = 1 - Seleccionar dirección de entrega +checkout.multi.deliveryAddress.stepHeader.done = 1 - Dirección de entrega +checkout.multi.deliveryAddress.useThisAddress = Utilizar esta dirección +checkout.multi.deliveryMethod = Método de envío +checkout.multi.deliveryMethod.breadcrumb = Método de envío +checkout.multi.deliveryMethod.continue = Siguiente +checkout.multi.deliveryMethod.deliveryOptions = Opciones de entrega +checkout.multi.deliveryMethod.edit = Editar +checkout.multi.deliveryMethod.header = Opciones de entrega +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Actualmente no existe ningún método de entrega. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Método de envío +checkout.multi.deliveryMethod.stepHeader = 2 - Seleccionar método de entrega +checkout.multi.deliveryMethod.stepHeader.done = 2 - Método de entrega +checkout.multi.deliveryMethod.useThisDeliveryMethod = Utilizar método de entrega seleccionado +checkout.multi.hostedOrderPageError.ERROR.150 = Error general del sistema. Posible acción: espere unos minutos y vuelva a enviar el pedido. +checkout.multi.hostedOrderPageError.ERROR.151 = Se ha recibido la solicitud, pero se ha producido un error de tiempo de espera del servidor. Posible acción: para evitar que se duplique el pedido, no vuelva a enviar la solicitud y póngase en contacto con nuestro equipo de ventas. +checkout.multi.hostedOrderPageError.ERROR.152 = Se ha recibido la solicitud, pero la ejecución de un servicio no ha finalizado a tiempo. Posible acción: para evitar que se duplique el pedido, no vuelva a enviar la solicitud y póngase en contacto con nuestro equipo de ventas. +checkout.multi.hostedOrderPageError.breadcrumb = Error +checkout.multi.hostedOrderPageError.continue = Continuar +checkout.multi.hostedOrderPageError.globalError = Error al crear la suscripción. Consulte los detalles del error a continuación. +checkout.multi.hostedOrderPageError.header = Detalles del error +checkout.multi.hostedOrderPostPage.button.submit = Enviar +checkout.multi.hostedOrderPostPage.header.debug = Esta página muestra todos los campos de la API Página de pedido hospedado (HOP, Hosted Order Page) que se enviarán a la URL de la HOP. Puede utilizarse para depurar la HOP cambiando los valores para simular el comportamiento deseado. +checkout.multi.hostedOrderPostPage.header.wait = Espere mientras le transferimos +checkout.multi.items.to.pickup = Recogida: +checkout.multi.next = Siguiente » +checkout.multi.order.summary = Resumen de pedidos +checkout.multi.payment = Pago: +checkout.multi.paymentMethod = Dirección de pago y facturación +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Dirección de facturación +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si la dirección de facturación es diferente de la dirección de entrega, utilice este formulario para introducir su dirección de facturación +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Especifique una dirección de facturación distinta +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Especifique los datos de su tarjeta para el pago +checkout.multi.paymentMethod.addPaymentDetails.generalError = Se ha producido un error al contactar con el proveedor del pago. Espere unos minutos y vuelva a intentarlo. Si el problema continúa, póngase en contacto con nuestro equipo de ventas. +checkout.multi.paymentMethod.addPaymentDetails.header = Detalles del pago +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Datos de la tarjeta +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Guardar estos detalles del pago en mi cuenta +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Utilizar una tarjeta guardada +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Los clientes registrados pueden seleccionar una tarjeta guardada previamente +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizar estos detalles del pago +checkout.multi.paymentMethod.breadcrumb = Dirección de pago y facturación +checkout.multi.paymentMethod.continue = Siguiente +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Especifique una dirección de facturación o una dirección de entrega primero para poder utilizarla como dirección de facturación. +checkout.multi.paymentMethod.createSubscription.failedMsg = Error al crear la suscripción. Compruebe los valores especificados. +checkout.multi.paymentMethod.edit = Editar +checkout.multi.paymentMethod.paymentDetails.expires = Caduca el {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = No hay nada seleccionado +checkout.multi.paymentMethod.savedCards.actions = Acciones +checkout.multi.paymentMethod.savedCards.billingAddress = Dirección de facturación +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Introduzca los nuevos detalles del pago +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = No tiene ninguna tarjeta guardada +checkout.multi.paymentMethod.savedCards.paymentCard = Tarjeta de pago +checkout.multi.paymentMethod.savedCards.select = Seleccionar +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Seleccione los detalles de pago existentes o especifique unos nuevos +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Seleccionar detalles del pago +checkout.multi.paymentMethod.viewSavedPayments = Ver pagos guardados +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Consulte la sección Resumen de pedidos para obtener más información. +checkout.multi.pickup.items = N.º recogida {0} - {1} elemento(s) +checkout.multi.pickupInStore = Recogida en tienda +checkout.multi.pickupInStore.confirm.and.continue = Confirme la información siguiente y continúe con el paso siguiente de la finalización de la compra. +checkout.multi.saveAddress = Guardar dirección +checkout.multi.secure.checkout = Pago seguro +checkout.multi.shipment.items = Envío - {0} elemento(s) +checkout.multi.shipment.pickup.location = Ubicación de envío/recogida +checkout.multi.sop.globalError = Se ha producido un error al procesar su solicitud. Posible acción: espere unos minutos y vuelva a enviar el pedido. +checkout.multi.sop.remove = Eliminar +checkout.multi.sop.savePaymentInfo = Guardar información de pago +checkout.multi.sop.useMyDeliveryAddress = Utilizar mi dirección de entrega +checkout.multi.sop.useThisPaymentInfo = Utilizar esta información de pago +checkout.multi.summary.breadcrumb = Revisión final +checkout.multi.deliveryAddress.notprovided = Debe proporcionar una dirección de entrega para continuar con el paso siguiente. +checkout.multi.deliveryMethod.notprovided = Debe proporcionar una opción de entrega para continuar con el paso siguiente. +checkout.multi.paymentDetails.notprovided = Debe proporcionar los detalles del pago para continuar con el paso siguiente. +checkout.orderConfirmation.copySentTo = Se ha enviado una copia de los detalles del pedido a {0} +checkout.orderConfirmation.orderNumber = Su número de pedido es {0} +checkout.orderConfirmation.orderNumberShort = N.º pedido {0} +checkout.orderConfirmation.orderStatus = Estado del pedido: {0} +checkout.orderConfirmation.pickupItems = {0} productos para recogida en tienda +checkout.orderConfirmation.pickupPoints = {0} destino(s) de recogida en tienda +checkout.orderConfirmation.checkoutSuccessful = Pago correcto +checkout.orderConfirmation.success = Su pedido es correcto! +checkout.orderConfirmation.summary = A continuación encontrará un resumen de su pedido: +checkout.orderConfirmation.thankYou = Gracias por su pedido. Su número de pedido es {0} +checkout.orderConfirmation.thankYouForOrder = Su pedido es correcto. Gracias por comprar con nosotros. +checkout.orderConfirmation.yourItems = Sus artículos +checkout.orderConfirmation.continueShopping = Seguir comprando +checkout.orderDetails.hide = [-] Ocultar detalles del pedido +checkout.orderDetails.show = [+] Ver detalles del pedido +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Especifique una dirección de facturación o una dirección de entrega primero para poder utilizarla como dirección de facturación. +checkout.paymentMethod.createSubscription.failed = Error al crear la suscripción. Compruebe los valores especificados. +checkout.paymentMethod.noSecurityCode = Proporcione su código de seguridad. +checkout.paymentMethod.notSelected = Proporcione los detalles del pago de su pedido +checkout.pickup.confirm.and.continue = Confirme la información siguiente y continúe con el paso siguiente de la finalización de la compra. +checkout.pickup.continue.button = Continuar +checkout.pickup.estimated.total = Total estimado: +checkout.pickup.items.appear.later = Los artículos del pedido que se recogerán aparecerán más adelante en la finalización de la compra +checkout.pickup.items.at.one.location = Todos los artículos del pedido seleccionados para recogida están disponibles actualmente en estas ubicaciones de la tienda: +checkout.pickup.items.available.at.one.location = SUS ARTÍCULOS DE RECOGIDA ESTÁN DISPONIBLES EN UNA UBICACIÓN (no afecta a los pedidos de entrega) +checkout.pickup.items.simplify.pickup.location = Me gustaría cambiar mi pedido para recoger todos los artículos en la misma tienda +checkout.pickup.items.to.be.delivered = Artículos para entregar +checkout.pickup.items.to.be.shipped = Enviar a: +checkout.pickup.items.to.pickup = {0} artículo(s) para recoger +checkout.pickup.no.delivery.required = No se requiere entrega para este pedido +checkout.pickup.pickup.in.store = Recogida en tienda - {0}, {1} +checkout.pickup.pickup.in.store.title = RECOGIDA EN TIENDA +checkout.pickup.simplifyPickup = Simplificar ubicación de recogida +checkout.pickup.store.destinations = {0} destino(s) de recogida en tienda +checkout.placeOrder.failed = Error al realizar el pedido +checkout.security.code = Código de seguridad +checkout.summary.edit = Editar +checkout.summary.deliveryAddress = Dirección de entrega +checkout.summary.deliveryAddress.edit = Editar +checkout.summary.deliveryAddress.editDeliveryAddressButton = Editar dirección de entrega +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Editar dirección de entrega +checkout.summary.deliveryAddress.header = Dirección de entrega +checkout.summary.deliveryAddress.noExistingAddresses = No tiene ninguna dirección en su libreta de direcciones. +checkout.summary.deliveryAddress.noneSelected = No hay nada seleccionado +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Guardar dirección de envío +checkout.summary.deliveryAddress.saveAndUseThisAddress = Guardar y utilizar esta dirección +checkout.summary.deliveryAddress.selectExistingAddress = Seleccionar dirección existente +checkout.summary.deliveryAddress.useForNewAddress = Utilice este formulario para especificar una nueva dirección +checkout.summary.deliveryAddress.useThisAddress = Utilizar esta dirección +checkout.summary.deliveryMode.editDeliveryMethod = Editar método de entrega +checkout.summary.deliveryMode.header = Opciones de entrega +checkout.summary.deliveryMode.items.for.pickup = {0} artículos para recogida en tienda +checkout.summary.deliveryMode.noneSelected = No hay nada seleccionado +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} destino(s) de recogida en tienda +checkout.summary.deliveryMode.selectDeliveryMethod = Seleccionar método de entrega +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Método de envío +checkout.summary.deliveryMode.useThisDeliveryMethod = Utilizar este método de entrega +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Dirección de facturación +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si la dirección de facturación es diferente de la dirección de entrega, utilice este formulario para introducir su dirección de facturación +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Especifique una dirección de facturación distinta +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Especifique los datos de su tarjeta para el pago +checkout.summary.paymentMethod.addPaymentDetails.header = Detalles del pago +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Tarjeta de pago +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Guardar y utilizar estos detalles del pago +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Guardar estos detalles del pago en mi cuenta +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Utilizar una tarjeta guardada +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Los clientes registrados pueden seleccionar una tarjeta guardada previamente +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizar estos detalles del pago +checkout.summary.paymentMethod.billingAddress.header = Dirección de facturación: +checkout.summary.paymentMethod.editPaymentMethod = Editar método de pago +checkout.summary.paymentMethod.header = Detalles del pago +checkout.summary.paymentMethod.paymentDetails.expires = Caduca el {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = No hay nada seleccionado +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Utilizar estos detalles del pago +checkout.summary.paymentMethod.savedCards.actions = Acciones +checkout.summary.paymentMethod.savedCards.billingAddress = Dirección de facturación +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Especificar nuevos detalles del pago +checkout.summary.paymentMethod.savedCards.header = Seleccionar detalles del pago +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = No tiene ninguna tarjeta guardada +checkout.summary.paymentMethod.savedCards.paymentCard = Tarjeta de pago +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Seleccione los detalles de pago existentes o especifique unos nuevos +checkout.summary.paymentMethod.securityCode = Código de seguridad +checkout.summary.paymentMethod.securityCode.whatIsThis = (¿Qué es esto?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Los tres últimos dígitos de la firma en la parte posterior de la tarjeta. En el caso de American Express, son los cuatro dígitos que hay encima del holograma en la parte frontal de la tarjeta. +checkout.summary.placeOrder = Realizar pedido +checkout.summary.placeOrder.readTermsAndConditions = Al realizar el pedido, confirmo que he leído y acepto los Términos y condiciones +checkout.summary.placeOrder.readTermsAndConditions.close = Cerrar +checkout.summary.reviewYourOrder = Revisión final +checkout.summary.reviewYourOrderMessage = Revise detenidamente su pedido! +checkout.summary.select.payment.method = Seleccionar método de pago +checkout.summary.shippingAddress = Dirección de envío + +checkout.express.error.notAvailable = La opción de finalización exprés de la compra no está disponible porque está desactivada. +checkout.express.error.deliveryAddress = La opción de finalización exprés de la compra no está disponible porque no tiene una dirección de entrega predeterminada. Configure una dirección de entrega predeterminada en su cuenta para utilizar la opción de finalización exprés de la compra la próxima vez. +checkout.express.error.deliveryMode = La finalización exprés de la compra no está disponible. Se ha producido un error al configurar el modo de entrega. +checkout.express.error.paymentInfo = La opción de finalización exprés de la compra no está disponible porque no tiene una información de pago predeterminada. Configure una información de pago predeterminada en su cuenta para utilizar la opción de finalización exprés de la compra la próxima vez. + + +payment.cardNumber = Número de tarjeta +payment.cardNumber.invalid = Especifique un número de tarjeta válido +payment.cardType = Tipo de tarjeta +payment.cardType.invalid = Seleccione un tipo de tarjeta +payment.cardType.pleaseSelect = Seleccione un tipo de tarjeta +payment.cvn = Número de verificación de tarjeta +payment.expiryDate = Fecha de caducidad* +payment.expiryMonth.invalid = Seleccione el mes de caducidad de la tarjeta +payment.expiryYear.invalid = Seleccione el año de caducidad de la tarjeta +payment.issueNumber = Número de emisión +payment.issueNumber.invalid = Este campo solo admite números +payment.issueNumber.toolong = El número de emisión es demasiado largo. +payment.month = Mes +payment.nameOnCard = Nombre de la tarjeta +payment.nameOnCard.invalid = Especifique el nombre que figura en la tarjeta +payment.startDate = Fecha de inicio (solo Maestro/Solo/Switch) +payment.startDate.invalid = La fecha de inicio debe ser anterior a la fecha de caducidad +payment.year = Año + +paymentMethod.billingAddress.header = Dirección de facturación: +paymentMethod.header = Detalles del pago + +mobile.checkout.cart.viewFullCart = Ver carro completo +mobile.checkout.cart.viewLess = Ver menos +mobile.checkout.confirmOrder = Revisión final +mobile.checkout.continue.button = Continuar +mobile.checkout.continue.shopping = Seguir comprando +mobile.checkout.deliveryAddress = Dirección de entrega +mobile.checkout.deliveryAddress.selectAddressMessage = Elija una dirección de entrega de su libreta de direcciones o añada una nueva +mobile.checkout.deliveryAddress.use = Utilizar +mobile.checkout.deliveryMethod = Opciones de entrega +mobile.checkout.edit.link = Editar +mobile.checkout.items.hide = Ocultar elementos +mobile.checkout.items.show = Mostrar más elementos +mobile.checkout.paymentMethod = Detalles del pago +mobile.checkout.paymentMethod.add.card = Añadir nueva tarjeta +mobile.checkout.paymentMethod.addOrSelect.card = Seleccione una tarjeta de pago guardada de su cartera o añada una tarjeta nueva +mobile.payment.issueNumber = Número de emisión (solo Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = Elegir de los Detalles del pago existentes +mobile.checkout.multi.button.submit = Enviar + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es_CO.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es_CO.properties new file mode 100644 index 000000000..ed2c23bae --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_es_CO.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Proporcione una dirección de entrega para el pedido +checkout.deliveryMethod.notSelected = Seleccione un método de entrega para el pedido +checkout.error.authorization.failed = Lamentamos comunicarle que no se ha podido completar su operación en esta oportunidad. Vuelva a intentarlo más tarde o póngase en contacto con el servicio al cliente llamando al 555-555-5555 +checkout.error.cart.notcalculated = Lamentamos comunicarle que no se ha podido completar su operación en esta oportunidad. Vuelva a intentarlo más tarde o póngase en contacto con el servicio al cliente llamando al 555-555-5555 +checkout.error.payment.not.accepted = Se ha rechazado su pago. Compruebe que los detalles del pago sean correctos. +checkout.error.paymentethod.formentry.invalid = Compruebe que los detalles del pago sean correctos o proporcione un método de pago distinto. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = El número de tarjeta no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = No se admite el tipo de tarjeta +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = El código de seguridad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = El mes de caducidad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = El año de caducidad no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = El número de emisión no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = El mes de inicio no es válido +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = El año de inicio no es válido +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Este valor no es válido para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Especifique un número de tarjeta +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Seleccione un tipo de tarjeta +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Especifique un mes de caducidad +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Especifique un año de caducidad +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Especifique un número de emisión +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Especifique un mes de inicio +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Especifique un año de inicio +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Especifique un valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Especifique un valor para este campo +checkout.error.tax.missing = Lamentamos comunicarle que no se ha podido completar su operación en esta oportunidad. Vuelva a intentarlo más tarde o póngase en contacto con el servicio al cliente llamando al 555-555-5555 +checkout.error.terms.not.accepted = Acepte nuestros términos y nuestras condiciones antes de enviar el pedido. +checkout.information.delivery.method.changed = Se ha actualizado su método de entrega en función de su ubicación de entrega. + +checkout.multi.addEditform = Utilice este formulario para añadir o editar una dirección. +checkout.multi.address.added = Se ha creado su dirección. +checkout.multi.address.updated = Se ha actualizado su dirección +checkout.multi.addressDetails = Detalles de la dirección +checkout.multi.breadcrumb = Pago +checkout.multi.cancel = Cancelar +checkout.multi.confirmOrder = Revisión final +checkout.multi.deliveryAddress = Ubicación de envío/retiro +checkout.multi.deliveryAddress.addAddress = Añadir dirección nueva +checkout.multi.deliveryAddress.address = Dirección +checkout.multi.deliveryAddress.addressBook = Libreta de direcciones +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = O conserve su dirección original: +checkout.multi.deliveryAddress.breadcrumb = Ubicación de envío/retiro +checkout.multi.deliveryAddress.continue = Siguiente +checkout.multi.deliveryAddress.edit = Editar +checkout.multi.deliveryAddress.editAddress = Editar dirección +checkout.multi.deliveryAddress.noExistingAddresses = No tiene ninguna dirección en su libreta de direcciones. +checkout.multi.deliveryAddress.noSuggestedAddresses = No hay sugerencias de direcciones +checkout.multi.deliveryAddress.remove = Eliminar +checkout.multi.deliveryAddress.select = Seleccionar +checkout.multi.deliveryAddress.selectAddressMessage = Seleccione una dirección existente para su entrega. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verifique su dirección.
Le sugerimos que acepte uno de los cambios siguientes en su dirección: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Enviar tal cual +checkout.multi.deliveryAddress.stepHeader = 1 - Seleccionar dirección de entrega +checkout.multi.deliveryAddress.stepHeader.done = 1 - Dirección de entrega +checkout.multi.deliveryAddress.useThisAddress = Usar esta dirección +checkout.multi.deliveryMethod = Método de envío +checkout.multi.deliveryMethod.breadcrumb = Método de envío +checkout.multi.deliveryMethod.continue = Siguiente +checkout.multi.deliveryMethod.deliveryOptions = Opciones de distribución +checkout.multi.deliveryMethod.edit = Editar +checkout.multi.deliveryMethod.header = Opciones de distribución +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Actualmente no existe ningún método de entrega. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Método de envío +checkout.multi.deliveryMethod.stepHeader = 2 - Seleccionar método de entrega +checkout.multi.deliveryMethod.stepHeader.done = 2 - Método de entrega +checkout.multi.deliveryMethod.useThisDeliveryMethod = Utilizar método de entrega seleccionado +checkout.multi.hostedOrderPageError.ERROR.150 = Error general del sistema. Posible acción: espere unos minutos y vuelva a enviar el pedido. +checkout.multi.hostedOrderPageError.ERROR.151 = Se ha recibido la solicitud, pero se ha producido un error de tiempo de espera del servidor. Posible acción: para evitar que se duplique el pedido, no vuelva a enviar la solicitud y póngase en contacto con nuestro equipo de ventas. +checkout.multi.hostedOrderPageError.ERROR.152 = Se ha recibido la solicitud, pero la ejecución de un servicio no ha finalizado a tiempo. Posible acción: para evitar que se duplique el pedido, no vuelva a enviar la solicitud y póngase en contacto con nuestro equipo de ventas. +checkout.multi.hostedOrderPageError.breadcrumb = Error +checkout.multi.hostedOrderPageError.continue = Continuar +checkout.multi.hostedOrderPageError.globalError = Error al crear la suscripción. Consulte los detalles del error a continuación. +checkout.multi.hostedOrderPageError.header = Detalles del error +checkout.multi.hostedOrderPostPage.button.submit = Enviar +checkout.multi.hostedOrderPostPage.header.debug = Esta página muestra todos los campos de la API Página de pedido hospedado (HOP, Hosted Order Page) que se enviarán a la URL de la HOP. Puede utilizarse para depurar la HOP cambiando los valores para simular el comportamiento deseado. +checkout.multi.hostedOrderPostPage.header.wait = Espere mientras le transferimos +checkout.multi.items.to.pickup = Retiro: +checkout.multi.next = Siguiente » +checkout.multi.order.summary = Resumen de pedido +checkout.multi.payment = Pago: +checkout.multi.paymentMethod = Dirección de pago y facturación +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Dirección de facturación +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si la dirección de facturación es diferente de la dirección de entrega, utilice este formulario para introducir su dirección de facturación +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Especifique una dirección de facturación distinta +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Especifique los datos de su tarjeta para el pago +checkout.multi.paymentMethod.addPaymentDetails.generalError = Se ha producido un error al contactar con el proveedor del pago. Espere unos minutos y vuelva a intentarlo. Si el problema continúa, póngase en contacto con nuestro equipo de ventas. +checkout.multi.paymentMethod.addPaymentDetails.header = Detalles del pago +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Datos de la tarjeta +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Guardar estos detalles del pago en mi cuenta +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Utilizar una tarjeta guardada +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Los clientes registrados pueden seleccionar una tarjeta guardada previamente +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizar estos detalles del pago +checkout.multi.paymentMethod.breadcrumb = Dirección de pago y facturación +checkout.multi.paymentMethod.continue = Siguiente +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Especifique una dirección de facturación o una dirección de entrega, primero, para poder utilizarla como dirección de facturación. +checkout.multi.paymentMethod.createSubscription.failedMsg = Error al crear la suscripción. Compruebe los valores especificados. +checkout.multi.paymentMethod.edit = Editar +checkout.multi.paymentMethod.paymentDetails.expires = Caduca el {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = No hay nada seleccionado +checkout.multi.paymentMethod.savedCards.actions = Acciones +checkout.multi.paymentMethod.savedCards.billingAddress = Dirección de facturación +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Introduzca los nuevos detalles del pago +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = No tiene ninguna tarjeta guardada +checkout.multi.paymentMethod.savedCards.paymentCard = Tarjeta de pago +checkout.multi.paymentMethod.savedCards.select = Seleccionar +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Seleccione los detalles de pago existentes o especifique unos nuevos +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Seleccionar detalles del pago +checkout.multi.paymentMethod.viewSavedPayments = Ver pagos guardados +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Consulte el área de resumen de pedido para obtener más información. +checkout.multi.pickup.items = Retirar #{0} - {1} elemento(s) +checkout.multi.pickupInStore = Retiro en tienda +checkout.multi.pickupInStore.confirm.and.continue = Confirme la información siguiente y continúe con el paso siguiente de la finalización de la compra. +checkout.multi.saveAddress = Guardar dirección +checkout.multi.secure.checkout = Pago seguro +checkout.multi.shipment.items = Envío - {0} elemento(s) +checkout.multi.shipment.pickup.location = Ubicación de envío/retiro +checkout.multi.sop.globalError = Se ha producido un error al procesar su solicitud. Posible acción: espere unos minutos y vuelva a enviar el pedido. +checkout.multi.sop.remove = Eliminar +checkout.multi.sop.savePaymentInfo = Guardar información de pago +checkout.multi.sop.useMyDeliveryAddress = Utilizar mi dirección de entrega +checkout.multi.sop.useThisPaymentInfo = Utilizar esta información de pago +checkout.multi.summary.breadcrumb = Revisión final +checkout.multi.deliveryAddress.notprovided = Debe proporcionar una dirección de entrega para continuar con el paso siguiente. +checkout.multi.deliveryMethod.notprovided = Debe proporcionar una opción de entrega para continuar con el paso siguiente. +checkout.multi.paymentDetails.notprovided = Debe proporcionar los detalles del pago para continuar con el paso siguiente. +checkout.orderConfirmation.copySentTo = Se ha enviado una copia de los detalles del pedido a {0} +checkout.orderConfirmation.orderNumber = Su número de pedido es {0} +checkout.orderConfirmation.orderNumberShort = N.º pedido {0} +checkout.orderConfirmation.orderStatus = Estado del pedido: {0} +checkout.orderConfirmation.pickupItems = {0} productos para retirar en la tienda +checkout.orderConfirmation.pickupPoints = {0} destinos de retiro en tienda +checkout.orderConfirmation.checkoutSuccessful = Pago correcto +checkout.orderConfirmation.success = Su pedido es correcto! +checkout.orderConfirmation.summary = A continuación encontrará un resumen de su pedido: +checkout.orderConfirmation.thankYou = Gracias por su pedido. Su número de pedido es {0} +checkout.orderConfirmation.thankYouForOrder = Su pedido es correcto. Gracias por comprar con nosotros. +checkout.orderConfirmation.yourItems = Sus artículos +checkout.orderConfirmation.continueShopping = Seguir comprando +checkout.orderDetails.hide = [-] Ocultar detalles del pedido +checkout.orderDetails.show = [+] Ver detalles del pedido +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Especifique una dirección de facturación o una dirección de entrega, primero, para poder utilizarla como dirección de facturación. +checkout.paymentMethod.createSubscription.failed = Error al crear la suscripción. Compruebe los valores especificados. +checkout.paymentMethod.noSecurityCode = Proporcione su código de seguridad. +checkout.paymentMethod.notSelected = Proporcione los detalles del pago de su pedido +checkout.pickup.confirm.and.continue = Confirme la información siguiente y continúe con el paso siguiente de la finalización de la compra. +checkout.pickup.continue.button = Continuar +checkout.pickup.estimated.total = Total estimado: +checkout.pickup.items.appear.later = Los artículos del pedido que se recogerán aparecerán más adelante en la finalización de la compra +checkout.pickup.items.at.one.location = Todos los artículos del pedido seleccionados para retiro están disponibles actualmente en estas ubicaciones de la tienda: +checkout.pickup.items.available.at.one.location = SUS ARTÍCULOS DE RETIRO ESTÁN DISPONIBLES EN UNA UBICACIÓN (no afecta a los pedidos de entrega) +checkout.pickup.items.simplify.pickup.location = Me gustaría cambiar mi pedido para retirar todos los artículos en la misma tienda +checkout.pickup.items.to.be.delivered = Artículos para entregar +checkout.pickup.items.to.be.shipped = Enviar a: +checkout.pickup.items.to.pickup = {0} artículos para retirar +checkout.pickup.no.delivery.required = No se requiere entrega para este pedido +checkout.pickup.pickup.in.store = Retiro en tienda - {0}, {1} +checkout.pickup.pickup.in.store.title = RETIRO EN TIENDA +checkout.pickup.simplifyPickup = Simplificar ubicación de retiro +checkout.pickup.store.destinations = {0} destinos de retiro en tienda +checkout.placeOrder.failed = Error al realizar el pedido +checkout.security.code = Código de seguridad +checkout.summary.edit = Editar +checkout.summary.deliveryAddress = Dirección de distribución +checkout.summary.deliveryAddress.edit = Editar +checkout.summary.deliveryAddress.editDeliveryAddressButton = Editar dirección de entrega +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Editar dirección de entrega +checkout.summary.deliveryAddress.header = Dirección de distribución +checkout.summary.deliveryAddress.noExistingAddresses = No tiene ninguna dirección en su libreta de direcciones. +checkout.summary.deliveryAddress.noneSelected = No hay nada seleccionado +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Guardar dirección de envío +checkout.summary.deliveryAddress.saveAndUseThisAddress = Guardar y utilizar esta dirección +checkout.summary.deliveryAddress.selectExistingAddress = Seleccionar dirección existente +checkout.summary.deliveryAddress.useForNewAddress = Utilice este formulario para especificar una nueva dirección +checkout.summary.deliveryAddress.useThisAddress = Utilizar esta dirección +checkout.summary.deliveryMode.editDeliveryMethod = Editar método de entrega +checkout.summary.deliveryMode.header = Opciones de distribución +checkout.summary.deliveryMode.items.for.pickup = {0} artículos para retiro en tienda +checkout.summary.deliveryMode.noneSelected = No hay nada seleccionado +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} destinos de retiro en tienda +checkout.summary.deliveryMode.selectDeliveryMethod = Seleccionar método de entrega +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Método de envío +checkout.summary.deliveryMode.useThisDeliveryMethod = Utilizar este método de entrega +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Dirección de facturación +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si la dirección de facturación es diferente de la dirección de entrega, utilice este formulario para introducir su dirección de facturación +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Especifique una dirección de facturación distinta +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Especifique los datos de su tarjeta para el pago +checkout.summary.paymentMethod.addPaymentDetails.header = Detalles del pago +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Tarjeta de pago +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Guardar y utilizar estos detalles del pago +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Guardar estos detalles del pago en mi cuenta +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Utilizar una tarjeta guardada +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Los clientes registrados pueden seleccionar una tarjeta guardada previamente +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizar estos detalles del pago +checkout.summary.paymentMethod.billingAddress.header = Dirección de facturación: +checkout.summary.paymentMethod.editPaymentMethod = Editar método de pago +checkout.summary.paymentMethod.header = Detalles del pago +checkout.summary.paymentMethod.paymentDetails.expires = Caduca el {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = No hay nada seleccionado +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Utilizar estos detalles del pago +checkout.summary.paymentMethod.savedCards.actions = Acciones +checkout.summary.paymentMethod.savedCards.billingAddress = Dirección de facturación +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Especificar nuevos detalles del pago +checkout.summary.paymentMethod.savedCards.header = Seleccionar detalles del pago +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = No tiene ninguna tarjeta guardada +checkout.summary.paymentMethod.savedCards.paymentCard = Tarjeta de pago +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Seleccione los detalles de pago existentes o especifique unos nuevos +checkout.summary.paymentMethod.securityCode = Código de seguridad +checkout.summary.paymentMethod.securityCode.whatIsThis = (¿Qué es esto?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Los tres últimos dígitos de la firma en la parte posterior de la tarjeta. En el caso de American Express, son los cuatro dígitos que hay encima del holograma en la parte frontal de la tarjeta. +checkout.summary.placeOrder = Realizar pedido +checkout.summary.placeOrder.readTermsAndConditions = Mediante la realización del pedido, confirmo que he leído los Términos y condiciones y que estoy de acuerdo con ellos. +checkout.summary.placeOrder.readTermsAndConditions.close = Cerrar +checkout.summary.reviewYourOrder = Revisión final +checkout.summary.reviewYourOrderMessage = Revise detenidamente su pedido! +checkout.summary.select.payment.method = Seleccionar método de pago +checkout.summary.shippingAddress = Dirección de envío + +checkout.express.error.notAvailable = La opción de pago rápido de la compra no está disponible porque está deshabilitada. +checkout.express.error.deliveryAddress = La opción de pago rápido de la compra no está disponible porque no tiene una dirección de entrega predeterminada. Configure una dirección de entrega predeterminada en su cuenta para utilizar la opción de pago rápido de la compra la próxima vez. +checkout.express.error.deliveryMode = El pago rápido de la compra no está disponible. Se ha producido un error al configurar el modo de entrega. +checkout.express.error.paymentInfo = La opción de pago rápido de la compra no está disponible porque no tiene una información de pago predeterminada. Configure una información de pago predeterminada en su cuenta para utilizar la opción de pago rápido de la compra la próxima vez. + + +payment.cardNumber = Número de tarjeta +payment.cardNumber.invalid = Especifique un número de tarjeta válido +payment.cardType = Tipo de tarjeta +payment.cardType.invalid = Seleccione un tipo de tarjeta +payment.cardType.pleaseSelect = Seleccione un tipo de tarjeta +payment.cvn = Número de verificación de tarjeta +payment.expiryDate = Fecha de caducidad* +payment.expiryMonth.invalid = Seleccione el mes de caducidad de la tarjeta +payment.expiryYear.invalid = Seleccione el año de caducidad de la tarjeta +payment.issueNumber = Número de emisión +payment.issueNumber.invalid = Este campo solo admite números +payment.issueNumber.toolong = El número de emisión es demasiado largo. +payment.month = Mes +payment.nameOnCard = Nombre de la tarjeta +payment.nameOnCard.invalid = Especifique el nombre que figura en la tarjeta +payment.startDate = Fecha de inicio (solo Maestro/Solo/Switch) +payment.startDate.invalid = La fecha de inicio debe ser anterior a la fecha de caducidad +payment.year = Año + +paymentMethod.billingAddress.header = Dirección de facturación: +paymentMethod.header = Detalles del pago + +mobile.checkout.cart.viewFullCart = Ver carro completo +mobile.checkout.cart.viewLess = Ver menos +mobile.checkout.confirmOrder = Revisión final +mobile.checkout.continue.button = Continuar +mobile.checkout.continue.shopping = Seguir comprando +mobile.checkout.deliveryAddress = Dirección de distribución +mobile.checkout.deliveryAddress.selectAddressMessage = Elija una dirección de entrega de su libreta de direcciones o añada una nueva +mobile.checkout.deliveryAddress.use = Utilizar +mobile.checkout.deliveryMethod = Opciones de distribución +mobile.checkout.edit.link = Editar +mobile.checkout.items.hide = Ocultar elementos +mobile.checkout.items.show = Mostrar más elementos +mobile.checkout.paymentMethod = Detalles del pago +mobile.checkout.paymentMethod.add.card = Añadir nueva tarjeta +mobile.checkout.paymentMethod.addOrSelect.card = Seleccione una tarjeta de pago guardada de su cartera o añada una tarjeta nueva +mobile.payment.issueNumber = Número de emisión (solo Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = Seleccionar de los detalles de pago actuales +mobile.checkout.multi.button.submit = Enviar + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_fr.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_fr.properties new file mode 100644 index 000000000..196dd6798 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_fr.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Veuillez fournir une adresse de livraison pour votre commande +checkout.deliveryMethod.notSelected = Veuillez sélectionner une méthode de livraison pour votre commande +checkout.error.authorization.failed = Malheureusement, votre transaction n'a pas pu être effectuée pour le moment ; réessayez plus tard ou contactez le service client au numéro 555-555-5555 +checkout.error.cart.notcalculated = Malheureusement, votre transaction n'a pas pu être effectuée pour le moment ; réessayez plus tard ou contactez le service client au numéro 555-555-5555 +checkout.error.payment.not.accepted = Votre paiement a été refusé. Vérifiez que les détails de paiement sont corrects. +checkout.error.paymentethod.formentry.invalid = Vérifiez que vos détails de paiement sont corrects ou indiquez une autre méthode de paiement. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = Le numéro de carte n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = Le type de carte n'est pas pris en charge +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = Le code de sécurité n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = Le mois d'expiration n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = L'année d'expiration n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = Le numéro d'émission n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = Le mois de début n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = L'année de début n'est pas valide +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Cette valeur n'est pas valide pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Veuillez entrer un numéro de carte +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Veuillez sélectionner un type de carte +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Veuillez entrer un mois d'expiration +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Veuillez entrer une année d'expiration +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Veuillez entrer un numéro d'émission +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Veuillez entrer un mois de début +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Veuillez entrer une année de début +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Veuillez entrer une valeur pour ce champ +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Veuillez entrer une valeur pour ce champ +checkout.error.tax.missing = Malheureusement, votre transaction n'a pas pu être effectuée pour le moment ; réessayez plus tard ou contactez le service client au numéro 555-555-5555 +checkout.error.terms.not.accepted = Avant d'envoyer votre commande, acceptez nos conditions générales. +checkout.information.delivery.method.changed = La méthode de livraison a été mise à jour en fonction du lieu de livraison. + +checkout.multi.addEditform = Veuillez utiliser ce formulaire pour ajouter/modifier une adresse. +checkout.multi.address.added = Votre adresse a été créée. +checkout.multi.address.updated = Votre adresse a été mise à jour +checkout.multi.addressDetails = Détails de l'adresse +checkout.multi.breadcrumb = Règlement +checkout.multi.cancel = Annuler +checkout.multi.confirmOrder = Dernière vérification +checkout.multi.deliveryAddress = Lieu de livraison/récupération +checkout.multi.deliveryAddress.addAddress = Ajouter une nouvelle adresse +checkout.multi.deliveryAddress.address = Adresse +checkout.multi.deliveryAddress.addressBook = Carnet d'adresses +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = Ou conserver l'adresse d'origine : +checkout.multi.deliveryAddress.breadcrumb = Lieu de livraison/récupération +checkout.multi.deliveryAddress.continue = Suivant +checkout.multi.deliveryAddress.edit = Modifier +checkout.multi.deliveryAddress.editAddress = Modifier l'adresse +checkout.multi.deliveryAddress.noExistingAddresses = Votre carnet d'adresses ne contient aucune adresse. +checkout.multi.deliveryAddress.noSuggestedAddresses = Aucune suggestion d'adresse +checkout.multi.deliveryAddress.remove = Supprimer +checkout.multi.deliveryAddress.select = Sélectionner +checkout.multi.deliveryAddress.selectAddressMessage = Sélectionnez une adresse existante pour votre livraison. +checkout.multi.deliveryAddress.selectSuggestedAddress = Vérifiez votre adresse.
Nous vous recommandons d'accepter l'une des modifications suivantes pour votre adresse : +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Envoyer tel quel +checkout.multi.deliveryAddress.stepHeader = 1 - Sélectionner une adresse de livraison +checkout.multi.deliveryAddress.stepHeader.done = 1 - Adresse de livraison +checkout.multi.deliveryAddress.useThisAddress = Utiliser cette adresse +checkout.multi.deliveryMethod = Méthode d'expédition +checkout.multi.deliveryMethod.breadcrumb = Méthode d'expédition +checkout.multi.deliveryMethod.continue = Suivant +checkout.multi.deliveryMethod.deliveryOptions = Options de livraison +checkout.multi.deliveryMethod.edit = Modifier +checkout.multi.deliveryMethod.header = Options de livraison +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Aucune méthode de livraison n'existe actuellement. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Méthode de livraison +checkout.multi.deliveryMethod.stepHeader = 2 - Sélectionner une méthode de livraison +checkout.multi.deliveryMethod.stepHeader.done = 2 - Méthode de livraison +checkout.multi.deliveryMethod.useThisDeliveryMethod = Utiliser la méthode de livraison sélectionnée +checkout.multi.hostedOrderPageError.ERROR.150 = Echec système général. Action possible : patientez quelques minutes et renvoyez la commande. +checkout.multi.hostedOrderPageError.ERROR.151 = La demande a été reçue mais le délai d'expiration du serveur a été dépassé. Action possible : pour éviter que la commande soit envoyée en double, ne renvoyez pas la demande avant d'avoir contacté notre équipe commerciale. +checkout.multi.hostedOrderPageError.ERROR.152 = La demande a été reçue mais mais un service n'a pas fini de s'exécuter à temps. Action possible : pour éviter que la commande soit envoyée en double, ne renvoyez pas la demande avant d'avoir contacté notre équipe commerciale. +checkout.multi.hostedOrderPageError.breadcrumb = Erreurs lors de l'exportation +checkout.multi.hostedOrderPageError.continue = Continuer +checkout.multi.hostedOrderPageError.globalError = La création de l'abonnement a échoué. Reportez-vous aux détails de l'erreur ci-dessous. +checkout.multi.hostedOrderPageError.header = Détails de l'erreur +checkout.multi.hostedOrderPostPage.button.submit = Envoyer +checkout.multi.hostedOrderPostPage.header.debug = Cette page affiche tous les champs de l'API HOP (Hosted Order Page), qui seront envoyés à l'URL HOP. Elle peut être utilisée pour déboguer la page de commande hébergée en modifiant les valeurs pour simuler le comportement souhaité. +checkout.multi.hostedOrderPostPage.header.wait = Veuillez patienter pendant votre transfert +checkout.multi.items.to.pickup = Récupération : +checkout.multi.next = Suivant » +checkout.multi.order.summary = Récapitulatif de la commande +checkout.multi.payment = Paiement : +checkout.multi.paymentMethod = Paiement et adresse de facturation +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Adresse de facturation +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si l'adresse de facturation diffère de l'adresse de livraison, veuillez utiliser ce formulaire pour entrer votre adresse de facturation +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Entrer une adresse de facturation différente +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Entrer les détails de la carte utilisée pour le paiement +checkout.multi.paymentMethod.addPaymentDetails.generalError = Une erreur s'est produite lors de la tentative de contact avec le fournisseur de paiement. Patientez quelques minutes et réessayez. Si le problème persiste, contactez notre équipe commerciale. +checkout.multi.paymentMethod.addPaymentDetails.header = Détails de paiement +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Détails de la carte +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Enregistrer ces détails de paiement dans mon compte +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Utiliser une carte enregistrée +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Les clients enregistrés peuvent sélectionner une carte enregistrée précédemment +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utiliser ces détails de paiement +checkout.multi.paymentMethod.breadcrumb = Paiement et adresse de facturation +checkout.multi.paymentMethod.continue = Suivant +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Veuillez entrer une adresse de facturation ou entrez d'abord une adresse de livraison afin qu'elle puisse être utilisée comme adresse de facturation. +checkout.multi.paymentMethod.createSubscription.failedMsg = La création de l'abonnement a échoué. Vérifiez les valeurs entrées. +checkout.multi.paymentMethod.edit = Modifier +checkout.multi.paymentMethod.paymentDetails.expires = Expire en {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Aucune sélection +checkout.multi.paymentMethod.savedCards.actions = Actions +checkout.multi.paymentMethod.savedCards.billingAddress = Adresse de facturation +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Entrer de nouveaux détails de paiement +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = Vous n'avez aucune carte enregistrée +checkout.multi.paymentMethod.savedCards.paymentCard = Carte de paiement +checkout.multi.paymentMethod.savedCards.select = Sélectionner +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Sélectionner des détails de paiement existants ou entrer de nouveaux détails de paiement +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Sélectionner les détails de paiement +checkout.multi.paymentMethod.viewSavedPayments = Afficher les paiements enregistrés +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Consultez la section Récapitulatif de la commande pour plus d'informations. +checkout.multi.pickup.items = Récupération n°{0} - {1} élément(s) +checkout.multi.pickupInStore = Récupérer en magasin +checkout.multi.pickupInStore.confirm.and.continue = Confirmez les informations ci-dessous et passez à la prochaine étape du règlement. +checkout.multi.saveAddress = Enregistrer l'adresse +checkout.multi.secure.checkout = Règlement sécurisé +checkout.multi.shipment.items = Livraison - {0} élément(s) +checkout.multi.shipment.pickup.location = Lieu de livraison/récupération +checkout.multi.sop.globalError = Une erreur s'est produite durant le traitement de votre demande. Action possible : patientez quelques minutes et renvoyez la commande. +checkout.multi.sop.remove = Supprimer +checkout.multi.sop.savePaymentInfo = Enregistrer les informations de paiement +checkout.multi.sop.useMyDeliveryAddress = Utiliser mon adresse de livraison +checkout.multi.sop.useThisPaymentInfo = Utiliser ces informations de paiement +checkout.multi.summary.breadcrumb = Dernière vérification +checkout.multi.deliveryAddress.notprovided = Vous devez fournir une adresse de livraison pour pouvoir passer à l'étape suivante. +checkout.multi.deliveryMethod.notprovided = Vous devez fournir une option de livraison pour pouvoir passer à l'étape suivante. +checkout.multi.paymentDetails.notprovided = Vous devez fournir des détails de paiement pour pouvoir passer à l'étape suivante. +checkout.orderConfirmation.copySentTo = Une copie des détails de votre commande a été envoyée à {0} +checkout.orderConfirmation.orderNumber = Votre commande porte le numéro {0} +checkout.orderConfirmation.orderNumberShort = Commande n°{0} +checkout.orderConfirmation.orderStatus = Statut de la commande : {0} +checkout.orderConfirmation.pickupItems = {0} articles à récupérer en magasin +checkout.orderConfirmation.pickupPoints = {0} destination(s) de récupération +checkout.orderConfirmation.checkoutSuccessful = Règlement effectué avec succès +checkout.orderConfirmation.success = Votre commande a été envoyée avec succès ! +checkout.orderConfirmation.summary = Voici un récapitulatif de votre commande : +checkout.orderConfirmation.thankYou = Nous vous remercions d''avoir effectué cette commande. Votre commande porte le numéro {0} +checkout.orderConfirmation.thankYouForOrder = Votre commande a été envoyée avec succès ! Nous vous remercions d'effectuer vos achats chez nous. +checkout.orderConfirmation.yourItems = Vos articles +checkout.orderConfirmation.continueShopping = Poursuivre les achats +checkout.orderDetails.hide = [-] Masquer les détails de la commande +checkout.orderDetails.show = [+] Afficher les détails de la commande +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Veuillez entrer une adresse de facturation ou entrez d'abord une adresse de livraison afin qu'elle puisse être utilisée comme adresse de facturation. +checkout.paymentMethod.createSubscription.failed = La création de l'abonnement a échoué. Vérifiez les valeurs entrées. +checkout.paymentMethod.noSecurityCode = Veuillez fournir un code de sécurité. +checkout.paymentMethod.notSelected = Veuillez fournir les détails de paiement de votre commande +checkout.pickup.confirm.and.continue = Confirmez les informations ci-dessous et passez à la prochaine étape du règlement. +checkout.pickup.continue.button = Continuer +checkout.pickup.estimated.total = Total estimé : +checkout.pickup.items.appear.later = Les articles de la commande à retirer apparaissent plus tard dans le règlement +checkout.pickup.items.at.one.location = Tous les articles de votre commande que vous avez choisi de retirer sont actuellement disponibles dans les points de retrait suivants : +checkout.pickup.items.available.at.one.location = VOS ARTICLES SONT DISPONIBLES A UN ENDROIT (N'affecte pas les instructions de livraison) +checkout.pickup.items.simplify.pickup.location = Je souhaite modifier ma commande afin de retirer tous mes articles dans le même magasin +checkout.pickup.items.to.be.delivered = Articles à livrer +checkout.pickup.items.to.be.shipped = Livrer à l'adresse : +checkout.pickup.items.to.pickup = {0} articles(s) à retirer +checkout.pickup.no.delivery.required = Aucune livraison requise pour cette commande +checkout.pickup.pickup.in.store = Retrait en magasin - {0}, {1} +checkout.pickup.pickup.in.store.title = RETRAIT EN MAGASIN +checkout.pickup.simplifyPickup = Simplifier le point de retrait +checkout.pickup.store.destinations = {0} point(s) de retrait +checkout.placeOrder.failed = La commande n'a pas pu être passée +checkout.security.code = Code de sécurité +checkout.summary.edit = Modifier +checkout.summary.deliveryAddress = Adresse de livraison +checkout.summary.deliveryAddress.edit = Modifier +checkout.summary.deliveryAddress.editDeliveryAddressButton = Modifier l'adresse de livraison +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Modifier l'adresse de livraison +checkout.summary.deliveryAddress.header = Adresse de livraison +checkout.summary.deliveryAddress.noExistingAddresses = Votre carnet d'adresses ne contient aucune adresse. +checkout.summary.deliveryAddress.noneSelected = Aucune sélection +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Enregistrer l'adresse de livraison +checkout.summary.deliveryAddress.saveAndUseThisAddress = Enregistrer et utiliser cette adresse +checkout.summary.deliveryAddress.selectExistingAddress = Sélectionner une adresse existante +checkout.summary.deliveryAddress.useForNewAddress = Veuillez utiliser ce formulaire pour entrer une nouvelle adresse +checkout.summary.deliveryAddress.useThisAddress = Utiliser cette adresse +checkout.summary.deliveryMode.editDeliveryMethod = Modifier la méthode de livraison +checkout.summary.deliveryMode.header = Options de livraison +checkout.summary.deliveryMode.items.for.pickup = {0} articles à retirer en magasin +checkout.summary.deliveryMode.noneSelected = Aucune sélection +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} point(s) de retrait +checkout.summary.deliveryMode.selectDeliveryMethod = Sélectionner une méthode de livraison +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Méthode de livraison +checkout.summary.deliveryMode.useThisDeliveryMethod = Utiliser cette méthode de livraison +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Adresse de facturation +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Si l'adresse de facturation diffère de l'adresse de livraison, veuillez utiliser ce formulaire pour entrer votre adresse de facturation +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Entrer une adresse de facturation différente +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Entrer les détails de la carte utilisée pour le paiement +checkout.summary.paymentMethod.addPaymentDetails.header = Détails de paiement +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Carte de paiement +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Enregistrer et utiliser ces détails de paiement +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Enregistrer ces détails de paiement dans mon compte +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Utiliser une carte enregistrée +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Les clients enregistrés peuvent sélectionner une carte enregistrée précédemment +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utiliser ces détails de paiement +checkout.summary.paymentMethod.billingAddress.header = Adresse de facturation : +checkout.summary.paymentMethod.editPaymentMethod = Modifier la méthode de paiement +checkout.summary.paymentMethod.header = Détails de paiement +checkout.summary.paymentMethod.paymentDetails.expires = Expire en {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Aucune sélection +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Utiliser ces détails de paiement +checkout.summary.paymentMethod.savedCards.actions = Actions +checkout.summary.paymentMethod.savedCards.billingAddress = Adresse de facturation +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Entrer de nouveaux détails de paiement +checkout.summary.paymentMethod.savedCards.header = Sélectionner des détails de paiement +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = Vous n'avez aucune carte enregistrée +checkout.summary.paymentMethod.savedCards.paymentCard = Carte de paiement +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Sélectionner des détails de paiement existants ou entrer de nouveaux détails de paiement +checkout.summary.paymentMethod.securityCode = Code de sécurité +checkout.summary.paymentMethod.securityCode.whatIsThis = (De quoi s'agit-il ?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Il s'agit des trois derniers chiffres sur le panneau de signature au verso de la carte. Pour les cartes American Express, il s'agit des quatre derniers chiffres au-dessus de l'hologramme au recto de la carte. +checkout.summary.placeOrder = Passer la commande +checkout.summary.placeOrder.readTermsAndConditions = En poursuivant ma commande, je confirme avoir lu et accepte les Conditions générales +checkout.summary.placeOrder.readTermsAndConditions.close = Fermer +checkout.summary.reviewYourOrder = Dernière vérification +checkout.summary.reviewYourOrderMessage = Examinez attentivement votre commande ! +checkout.summary.select.payment.method = Sélectionner une méthode de paiement +checkout.summary.shippingAddress = Adresse de livraison + +checkout.express.error.notAvailable = Le règlement express étant désactivé, cette option n'est pas disponible. +checkout.express.error.deliveryAddress = Le règlement express n'est pas disponible car vous ne disposez pas d'une adresse de livraison par défaut. Définissez une adresse de livraison par défaut dans votre compte pour utiliser l'option de règlement express à la prochaine commande. +checkout.express.error.deliveryMode = L'option de règlement express n'est pas disponible. Une erreur est survenue lors du choix du mode de livraison. +checkout.express.error.paymentInfo = Le règlement express n'est pas disponible car vous ne disposez pas d'informations de paiement par défaut. Définissez des informations de paiement par défaut dans votre compte pour utiliser l'option de règlement express à la prochaine commande. + + +payment.cardNumber = Numéro de la carte +payment.cardNumber.invalid = Veuillez saisir un numéro de carte valide +payment.cardType = Type de carte +payment.cardType.invalid = Veuillez sélectionner un type de carte de crédit +payment.cardType.pleaseSelect = Veuillez sélectionner un type de carte de crédit +payment.cvn = Numéro de vérification de la carte +payment.expiryDate = Date d'expiration* +payment.expiryMonth.invalid = Veuillez sélectionner le mois d'expiration de la carte +payment.expiryYear.invalid = Veuillez sélectionner l'année d'expiration de la carte +payment.issueNumber = Numéro d'émission +payment.issueNumber.invalid = Seuls les nombres sont autorisés dans ce champ +payment.issueNumber.toolong = Le numéro d'émission est trop long. +payment.month = Mois +payment.nameOnCard = Nom sur la carte +payment.nameOnCard.invalid = Veuillez entrer le nom affiché sur la carte +payment.startDate = Date de début (cartes Maestro / Solo / Switch uniquement) +payment.startDate.invalid = La date de début doit être antérieure à la date d'expiration +payment.year = Année + +paymentMethod.billingAddress.header = Adresse de facturation : +paymentMethod.header = Détails de paiement + +mobile.checkout.cart.viewFullCart = Afficher tout le panier +mobile.checkout.cart.viewLess = Afficher moins +mobile.checkout.confirmOrder = Dernière vérification +mobile.checkout.continue.button = Continuer +mobile.checkout.continue.shopping = Poursuivre les achats +mobile.checkout.deliveryAddress = Adresse de livraison +mobile.checkout.deliveryAddress.selectAddressMessage = Choisir une adresse de livraison à partir de votre carnet d'adresses ou ajouter une nouvelle adresse +mobile.checkout.deliveryAddress.use = Utiliser +mobile.checkout.deliveryMethod = Options de livraison +mobile.checkout.edit.link = Modifier +mobile.checkout.items.hide = Masquer les articles +mobile.checkout.items.show = Afficher plus d'articles +mobile.checkout.paymentMethod = Détails de paiement +mobile.checkout.paymentMethod.add.card = Ajouter une nouvelle carte +mobile.checkout.paymentMethod.addOrSelect.card = Sélectionner une carte de paiement enregistrée dans votre portefeuille ou ajouter une nouvelle carte +mobile.payment.issueNumber = Numéro d'émission (Maestro / Solo / Switch uniquement) +mobile.multi.checkout.selectExistingCard = Sélectionner des détails de paiement existants +mobile.checkout.multi.button.submit = Envoyer + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_hi.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_hi.properties new file mode 100644 index 000000000..a937916e9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_hi.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = कृपया अपने ऑर्डर की वितरण हेतु पता प्रदान कीजिए +checkout.deliveryMethod.notSelected = कृपया अपने ऑर्डर की वितरण हेतु पद्धति का चयन कीजिए +checkout.error.authorization.failed = क्षमा करें, आपका ट्रांज़ेक्शन इस समय पूर्ण नहीं हो सका; कृपया कुछ समय पश्चात पुनः प्रयास करें अथवा 555-555-5555 पर ग्राहक सेवा से संपर्क करें +checkout.error.cart.notcalculated = क्षमा करें, आपका ट्रांज़ेक्शन इस समय पूर्ण नहीं हो सका; कृपया कुछ समय पश्चात पुनः प्रयास करें अथवा 555-555-5555 पर ग्राहक सेवा से संपर्क करें +checkout.error.payment.not.accepted = आपका भुगतान अस्वीकृत हो गया है. कृपया अपने भुगतान विवरण की जांच करें. +checkout.error.paymentethod.formentry.invalid = कृपया अपने भुगतान विवरण की जांच करें अथवा भुगतान हेतु अन्य पद्धति प्रदान करें. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = कार्ड संख्या वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = यह कार्ड प्रकार समर्थित नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = यह सुरक्षा कोड वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = समापन माह वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = समापन वर्ष वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = प्रकाशन संख्या वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = आरंभ माह वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = आरंभ वर्ष वैध नहीं है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = इस क्षेत्र में यह मान अमान्य है +checkout.error.paymentethod.formentry.sop.missing.billTo_city = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_country = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_email = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_state = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = कृपया कार्ड संख्या प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_cardType = कृपया कार्ड का प्रकार चुनें +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = कृपया समापन माह प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = कृपया समापन वर्ष प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = कृपया प्रकाशन संख्या प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = कृपया आरंभ माह प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.card_startYear = कृपया आरंभ वर्ष प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = कृपया इस क्षेत्र हेतु मान प्रविष्ट करें +checkout.error.tax.missing = क्षमा करें, आपका ट्रांज़ेक्शन इस समय पूर्ण नहीं हो सका; कृपया कुछ समय पश्चात पुनः प्रयास करें अथवा 555-555-5555 पर ग्राहक सेवा से संपर्क करें +checkout.error.terms.not.accepted = अपना ऑर्डर सबमिट करने से पूर्व कृपया हमारे नियम एवं शर्तें स्वीकार करें. +checkout.information.delivery.method.changed = आपके वितरण स्थान के अनुसार आपकी वितरण पद्धति अपडेट कर दी गई है. + +checkout.multi.addEditform = पता जोड़ने/ संपादित करने हेतु कृपया इस फॉर्म का उपयोग करें. +checkout.multi.address.added = आपका पता निर्मित हो गया है. +checkout.multi.address.updated = आपका पता अपडेट कर दिया गया है +checkout.multi.addressDetails = पता विवरण +checkout.multi.breadcrumb = चेकआउट करें +checkout.multi.cancel = रद्द करें +checkout.multi.confirmOrder = अंतिम समीक्षा +checkout.multi.deliveryAddress = शिपमेंट/प्राप्ति स्थान +checkout.multi.deliveryAddress.addAddress = नया पता जोड़ें +checkout.multi.deliveryAddress.address = पता +checkout.multi.deliveryAddress.addressBook = पता पुस्तिका +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = अथवा अपना प्रारंभिक पता रहने दें: +checkout.multi.deliveryAddress.breadcrumb = शिपमेंट/प्राप्ति स्थान +checkout.multi.deliveryAddress.continue = अगला +checkout.multi.deliveryAddress.edit = संपादित करें +checkout.multi.deliveryAddress.editAddress = पता संपादित करें +checkout.multi.deliveryAddress.noExistingAddresses = आपकी पता पुस्तिका में कोई भी पता नहीं है. +checkout.multi.deliveryAddress.noSuggestedAddresses = पता हेतु कोई सुझाव नहीं +checkout.multi.deliveryAddress.remove = हटाएं +checkout.multi.deliveryAddress.select = चयन करें +checkout.multi.deliveryAddress.selectAddressMessage = वितरण हेतु किसी विद्यमान पते का चयन करें. +checkout.multi.deliveryAddress.selectSuggestedAddress = अपने पते की पुष्टि करें.
हम आपको अपने पते में निम्न से कोई एक परिवर्तन स्वीकार करने का सुझाव देते हैं: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = जैसा है वैसे ही सबमिट करें +checkout.multi.deliveryAddress.stepHeader = 1 - वितरण हेतु पता चुनें +checkout.multi.deliveryAddress.stepHeader.done = 1 - वितरण हेतु पता +checkout.multi.deliveryAddress.useThisAddress = इस पते का उपयोग करें +checkout.multi.deliveryMethod = शिपिंग की पद्धति +checkout.multi.deliveryMethod.breadcrumb = शिपिंग की पद्धति +checkout.multi.deliveryMethod.continue = अगला +checkout.multi.deliveryMethod.deliveryOptions = वितरण विकल्प +checkout.multi.deliveryMethod.edit = संपादित करें +checkout.multi.deliveryMethod.header = वितरण विकल्प +checkout.multi.deliveryMethod.noExistingDeliveryMethod = फ़िलहाल वितरण हेतु कोई भी पद्धति विद्यमान नहीं है. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = शिपमेंट पद्धति +checkout.multi.deliveryMethod.stepHeader = 2 - वितरण की पद्धति चुनें +checkout.multi.deliveryMethod.stepHeader.done = 2 - वितरण की पद्धति +checkout.multi.deliveryMethod.useThisDeliveryMethod = वितरण की चयनित पद्धति का उपयोग करें +checkout.multi.hostedOrderPageError.ERROR.150 = सामान्य सिस्टम विफलता. संभव क्रिया: कुछ मिनटों तक प्रतीक्षा करें एवं ऑर्डर पुनः भेजें. +checkout.multi.hostedOrderPageError.ERROR.151 = अनुरोध प्राप्त कर लिया गया है, परंतु सर्वर टाइमआउट हो गया है. संभव क्रिया: ऑर्डर का समरूपण रोकने हेतु, हमारे विक्रेता दल से संपर्क किए जाने तक अनुरोध पुनः ना भेजें. +checkout.multi.hostedOrderPageError.ERROR.152 = अनुरोध प्राप्त कर लिया गया है, परंतु एक सेवा समय पर संचालन पूर्ण नहीं कर पाई. संभव क्रिया: ऑर्डर का समरूपण रोकने हेतु, हमारे विक्रेता दल से संपर्क किए जाने तक अनुरोध पुनः ना भेजें. +checkout.multi.hostedOrderPageError.breadcrumb = त्रुटि +checkout.multi.hostedOrderPageError.continue = जारी रखें +checkout.multi.hostedOrderPageError.globalError = सदस्यता निर्मित करने में विफलता. कृपया नीचे त्रुटि विवरण देखें. +checkout.multi.hostedOrderPageError.header = त्रुटि विवरण +checkout.multi.hostedOrderPostPage.button.submit = सबमिट करें +checkout.multi.hostedOrderPostPage.header.debug = यह पृष्ठ HOP URL में भेजे जाने वाले होस्टेड ऑर्डर पेज (HOP) के सभी API क्षेत्रों को दर्शाता है. इच्छित व्यवहार की नकल करने हेतु मानों में परिवर्तन करके इसका उपयोग HOP को डिबग करने के लिए किया जा सकता है. +checkout.multi.hostedOrderPostPage.header.wait = हमारे द्वारा हस्तांतरित किए जाने तक कृपया प्रतीक्षा करें +checkout.multi.items.to.pickup = प्राप्ति: +checkout.multi.next = अगला » +checkout.multi.order.summary = ऑर्डर का सारांश +checkout.multi.payment = भुगतान: +checkout.multi.paymentMethod = भुगतान और बिलिंग का पता +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = बिलिंग पता +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = आपका बिलिंग पता वितरण के पते से भिन्न होने पर, बिलिंग पता प्रविष्ट करने हेतु कृपया इस फॉर्म का उपयोग करें +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = बिलिंग हेतु भिन्न पता प्रविष्ट करें +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = भुगतान हेतु कृपया अपना कार्ड विवरण प्रविष्ट करें +checkout.multi.paymentMethod.addPaymentDetails.generalError = भुगतान प्रदाता से संपर्क करते समय त्रुटि हुई है. कुछ मिनटों तक प्रतीक्षा करके पुनः प्रयास करें. यदि समस्या फिर भी बनी रहे, तो कृपया हमारे विक्रेता दल से संपर्क करें. +checkout.multi.paymentMethod.addPaymentDetails.header = भुगतान का विवरण +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = कार्ड विवरण +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = भुगतान के इन विवरणों मेरे खाते में सहेजें +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = सहेजे गए कार्ड का उपयोग करें +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = पंजीकृत ग्राहक पूर्व सहेजे गए कार्ड का चयन कर सकते हैं +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = भुगतान के इन विवरणों का उपयोग करें +checkout.multi.paymentMethod.breadcrumb = भुगतान और बिलिंग का पता +checkout.multi.paymentMethod.continue = अगला +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = कृपया पहले अपना बिलिंग पता अथवा वितरण का पता प्रविष्ट करें, ताकि उसका उपयोग बिलिंग पते के रूप में किया जा सके. +checkout.multi.paymentMethod.createSubscription.failedMsg = सदस्यता निर्मित करने में विफलता. कृपया प्रविष्ट मानों की जांच करें. +checkout.multi.paymentMethod.edit = संपादित करें +checkout.multi.paymentMethod.paymentDetails.expires = {0} / {1} को समाप्त +checkout.multi.paymentMethod.paymentDetails.noneSelected = कोई भी नहीं- का चयन किया गया है +checkout.multi.paymentMethod.savedCards.actions = क्रियाएं +checkout.multi.paymentMethod.savedCards.billingAddress = बिलिंग पता +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = नए भुगतान विवरण प्रविष्ट करें +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = आपका कोई भी सहेजा गया कार्ड नहीं है +checkout.multi.paymentMethod.savedCards.paymentCard = भुगतान कार्ड +checkout.multi.paymentMethod.savedCards.select = चयन करें +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = भुगतान के विद्यमान विवरण का चयन करें अथवा नए विवरण प्रविष्ट करें +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - भुगतान विवरण चुनें +checkout.multi.paymentMethod.viewSavedPayments = सहेजा गया भुगतान दिखाएं +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = अधिक जानकारी के लिए लिए ऑर्डर सारांश क्षेत्र देखें. +checkout.multi.pickup.items = प्राप्ति #{0} - {1} सामग्री (सामग्रियाँ) +checkout.multi.pickupInStore = स्टोर से प्राप्त करें +checkout.multi.pickupInStore.confirm.and.continue = मात्र नीचे दी गई जानकरी को पुष्ट करके चेकआउट के अगले चरण में जाएं. +checkout.multi.saveAddress = पता सहेजें +checkout.multi.secure.checkout = सुरक्षित चेकआउट +checkout.multi.shipment.items = शिपमेंट - {0} सामग्री(सामग्रियाँ) +checkout.multi.shipment.pickup.location = शिपमेंट/प्राप्ति स्थान +checkout.multi.sop.globalError = आपके अनुरोध की प्रक्रिया के समय त्रुटि हुई है. संभव क्रिया: कुछ मिनटों तक प्रतीक्षा करके ऑर्डर पुनः भेजें. +checkout.multi.sop.remove = हटाएं +checkout.multi.sop.savePaymentInfo = भुगतान की जानकरी सहेजें +checkout.multi.sop.useMyDeliveryAddress = मेरे वितरण के पते का उपयोग करें +checkout.multi.sop.useThisPaymentInfo = भुगतान की इस जानकरी का उपयोग करें +checkout.multi.summary.breadcrumb = अंतिम समीक्षा +checkout.multi.deliveryAddress.notprovided = अगले चरण में जाने हेतु वितरण का पता देना अनिवार्य है. +checkout.multi.deliveryMethod.notprovided = अगले चरण में जाने हेतु वितरण का विकल्प देना अनिवार्य है. +checkout.multi.paymentDetails.notprovided = अगले चरण में जाने के लिए भुगतान विवरण देना अनिवार्य है. +checkout.orderConfirmation.copySentTo = आपके ऑर्डर विवरण की एक प्रति {0} पर भेज दी गई है +checkout.orderConfirmation.orderNumber = आपका ऑर्डर क्रमांक {0} है +checkout.orderConfirmation.orderNumberShort = ऑर्डर # {0} +checkout.orderConfirmation.orderStatus = ऑर्डर की स्थिति : {0} +checkout.orderConfirmation.pickupItems = स्टोर से प्राप्त करने हेतु {0} आइटम +checkout.orderConfirmation.pickupPoints = {0} दूकान से प्राप्ति का(के) स्थान +checkout.orderConfirmation.checkoutSuccessful = चेकआउट सफल रहा +checkout.orderConfirmation.success = आपका ऑर्डर सफल रहा! +checkout.orderConfirmation.summary = आपके ऑर्डर का सारांश निम्नानुसार है: +checkout.orderConfirmation.thankYou = ऑर्डर हेतु आपका धन्यवाद. आपका ऑर्डर क्रमांक {0} है +checkout.orderConfirmation.thankYouForOrder = आपका ऑर्डर सफल रहा! खरीददारी हेतु आपका धन्यवाद. +checkout.orderConfirmation.yourItems = आपकी आइटम +checkout.orderConfirmation.continueShopping = खरीददारी जारी रखें +checkout.orderDetails.hide = [-] ऑर्डर विवरण छिपाएं +checkout.orderDetails.show = [+] ऑर्डर विवरण दिखाएं +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = कृपया पहले अपना बिलिंग पता अथवा वितरण का पता प्रविष्ट करें, ताकि उसका उपयोग बिलिंग पते के रूप में किया जा सके. +checkout.paymentMethod.createSubscription.failed = सदस्यता निर्मित करने में विफलता. कृपया प्रविष्ट मानों की जांच करें. +checkout.paymentMethod.noSecurityCode = कृपया सुरक्षा कोड दें. +checkout.paymentMethod.notSelected = अपना ऑर्डर हेतु कृपया अपने भुगतान विवरण प्रदान करें +checkout.pickup.confirm.and.continue = मात्र नीचे दी गई जानकरी को पुष्ट करके चेकआउट के अगले चरण में जाएं. +checkout.pickup.continue.button = जारी रखें +checkout.pickup.estimated.total = अनुमानित लागत: +checkout.pickup.items.appear.later = प्राप्त की जाने वाली, ऑर्डर की गई वस्तुएं चेकआउट में बाद में दिखाई देंगी +checkout.pickup.items.at.one.location = प्राप्त करने हेतु चयनित आपके ऑर्डर की सभी आइटम फ़िलहाल इन स्टोर पर उपलब्ध हैं: +checkout.pickup.items.available.at.one.location = आपकी प्राप्त की जाने वाली आइटम एक स्थान पर उपलब्ध हैं (जो कि वितरण के ऑर्डरों को प्रभावित नहीं करता) +checkout.pickup.items.simplify.pickup.location = अपने सभी आइटम एक ही स्टोर से प्राप्त करने हेतु मैं अपना ऑर्डर परिवर्तित करना चाहता/ चाहती हूँ +checkout.pickup.items.to.be.delivered = वितरण हेतु आइटम +checkout.pickup.items.to.be.shipped = निम्न पर भेजें: +checkout.pickup.items.to.pickup = प्राप्त करने हेतु {0} आइटम (आइटम) +checkout.pickup.no.delivery.required = इस ऑर्डर हेतु वितरण की आवश्यकता नहीं है +checkout.pickup.pickup.in.store = दूकान - {0}, {1} से प्राप्त करें +checkout.pickup.pickup.in.store.title = स्टोर से प्राप्त करें +checkout.pickup.simplifyPickup = प्राप्ति स्थान स्पष्ट करें +checkout.pickup.store.destinations = {0} दूकान से प्राप्ति का(के) स्थान +checkout.placeOrder.failed = ऑर्डर करने में विफलता +checkout.security.code = सुरक्षा कोड +checkout.summary.edit = संपादित करें +checkout.summary.deliveryAddress = डिलीवरी का पता +checkout.summary.deliveryAddress.edit = संपादित करें +checkout.summary.deliveryAddress.editDeliveryAddressButton = वितरण का पता संपादित करें +checkout.summary.deliveryAddress.enterDeliveryAddressButton = वितरण का पता संपादित करें +checkout.summary.deliveryAddress.header = डिलीवरी का पता +checkout.summary.deliveryAddress.noExistingAddresses = आपकी पता पुस्तिका में कोई भी पता नहीं है. +checkout.summary.deliveryAddress.noneSelected = कोई भी नहीं- का चयन किया गया है +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = शिपिंग पता संचित करें +checkout.summary.deliveryAddress.saveAndUseThisAddress = सहेजकर इस पते का उपयोग करें +checkout.summary.deliveryAddress.selectExistingAddress = विद्यमान पता चुनें +checkout.summary.deliveryAddress.useForNewAddress = नया पता प्रविष्ट करने हेतु कृपया इस फॉर्म का उपयोग करें +checkout.summary.deliveryAddress.useThisAddress = इस पते का उपयोग करें +checkout.summary.deliveryMode.editDeliveryMethod = वितरण की पद्धति संपादित करें +checkout.summary.deliveryMode.header = वितरण विकल्प +checkout.summary.deliveryMode.items.for.pickup = दुकान से प्राप्त करने हेतु {0} वस्तुएं +checkout.summary.deliveryMode.noneSelected = कोई भी नहीं- का चयन किया गया है +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} स्टोर से प्राप्ति का(के) स्थान +checkout.summary.deliveryMode.selectDeliveryMethod = वितरण की पद्धति चुनें +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = शिपमेंट पद्धति +checkout.summary.deliveryMode.useThisDeliveryMethod = वितरण की इस पद्धति का उपयोग करें +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = बिलिंग पता +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = आपका बिलिंग पता वितरण के पते से भिन्न होने पर, बिलिंग पता प्रविष्ट करने हेतु कृपया इस फॉर्म का उपयोग करें +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = बिलिंग हेतु भिन्न पता प्रविष्ट करें +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = भुगतान हेतु कृपया अपना कार्ड विवरण प्रविष्ट करें +checkout.summary.paymentMethod.addPaymentDetails.header = भुगतान का विवरण +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = भुगतान कार्ड +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = सहेजकर इन भुगतान विवरणों का उपयोग करें +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = भुगतान के इन विवरणों मेरे खाते में सहेजें +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = सहेजे गए कार्ड का उपयोग करें +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = पंजीकृत ग्राहक पूर्व सहेजे गए कार्ड का चयन कर सकते हैं +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = भुगतान के इन विवरणों का उपयोग करें +checkout.summary.paymentMethod.billingAddress.header = बिलिंग पता: +checkout.summary.paymentMethod.editPaymentMethod = भुगतान की पद्धति संपादित करें +checkout.summary.paymentMethod.header = भुगतान का विवरण +checkout.summary.paymentMethod.paymentDetails.expires = {0} / {1} को समाप्त +checkout.summary.paymentMethod.paymentDetails.noneSelected = कोई भी नहीं- का चयन किया गया है +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = भुगतान के इन विवरणों का उपयोग करें +checkout.summary.paymentMethod.savedCards.actions = क्रियाएं +checkout.summary.paymentMethod.savedCards.billingAddress = बिलिंग पता +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = भुगतान के नए विवरण प्रविष्ट करें +checkout.summary.paymentMethod.savedCards.header = भुगतान विवरण का चयन करें +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = आपका कोई भी सहेजा गया कार्ड नहीं है +checkout.summary.paymentMethod.savedCards.paymentCard = भुगतान कार्ड +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = भुगतान के विद्यमान विवरण का चयन करें अथवा नए विवरण प्रविष्ट करें +checkout.summary.paymentMethod.securityCode = सुरक्षा कोड +checkout.summary.paymentMethod.securityCode.whatIsThis = (यह क्या है?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = कार्ड के पिछले भाग में हस्ताक्षर पट्टी पर स्थित अंतिम 3 अंक| अमेरिकन एक्सप्रेस हेतु, यह कार्ड के सामने के भाग पर स्थित होलोग्राम के उपरी भाग के 4 अंक हैं. +checkout.summary.placeOrder = ऑर्डर करें +checkout.summary.placeOrder.readTermsAndConditions = ऑर्डर देते हुए मैं पुष्टि करता हूँ कि मैंने नियम एवं शर्तें पढ़ ली हैं एवं मैं इनसे सहमत हूँ +checkout.summary.placeOrder.readTermsAndConditions.close = बंद करें +checkout.summary.reviewYourOrder = अंतिम समीक्षा +checkout.summary.reviewYourOrderMessage = कृपया ध्यानपूर्वक अपने ऑर्डर की समीक्षा करें! +checkout.summary.select.payment.method = भुगतान की पद्धति चुनें +checkout.summary.shippingAddress = शिपिंग पता + +checkout.express.error.notAvailable = निष्क्रिय होने के कारण एक्सप्रेस चेकआउट उपलब्ध नहीं है. +checkout.express.error.deliveryAddress = आपका कोई डिफ़ॉल्ट वितरण पता ना होने के कारण एक्सप्रेस चेकआउट उपलब्ध नहीं है. अगली बार एक्सप्रेस चेकआउट का उपयोग करने हेतु कृपया अपने खाते में एक डिफ़ॉल्ट वितरण पता सेट करें. +checkout.express.error.deliveryMode = एक्सप्रेस चेकआउट उपलब्ध नहीं है. वितरण पद्धति सेट करते समय त्रुटि हुई है. +checkout.express.error.paymentInfo = आपकी कोई डिफ़ॉल्ट भुगतान जानकारी ना होने के कारण एक्सप्रेस चेकआउट उपलब्ध नहीं है. अगली बार एक्सप्रेस चेकआउट का उपयोग करने हेतु कृपया अपने खाते में एक डिफ़ॉल्ट भुगतान जानकारी सेट करें. + + +payment.cardNumber = कार्ड संख्या +payment.cardNumber.invalid = कृपया वैध कार्ड संख्या प्रविष्ट करें +payment.cardType = कार्ड का प्रकार +payment.cardType.invalid = कृपया कार्ड का एक प्रकार चुनें +payment.cardType.pleaseSelect = कृपया कार्ड का एक प्रकार चुनें +payment.cvn = कार्ड पुष्टिकरण संख्या +payment.expiryDate = समापन तिथि* +payment.expiryMonth.invalid = कृपया कार्ड का समापन माह चुनें +payment.expiryYear.invalid = कृपया कार्ड का समापन वर्ष चुनें +payment.issueNumber = प्रकाशन संख्या +payment.issueNumber.invalid = उस क्षेत्र में केवल संख्याएं ही प्रविष्ट की जा सकती हैं +payment.issueNumber.toolong = प्रकाशन संख्या बहुत बड़ी है. +payment.month = माह +payment.nameOnCard = कार्ड पर स्थित नाम +payment.nameOnCard.invalid = कृपया कार्ड पर स्थित नाम प्रविष्ट करें +payment.startDate = आरंभ तिथि (मात्र Maestro / Solo / Switch हेतु) +payment.startDate.invalid = आरंभ तिथि समापन तिथि से पहले की होनी चाहिए +payment.year = वर्ष + +paymentMethod.billingAddress.header = बिलिंग पता: +paymentMethod.header = भुगतान का विवरण + +mobile.checkout.cart.viewFullCart = संपूर्ण कार्ट दिखाएं +mobile.checkout.cart.viewLess = कम दिखाएं +mobile.checkout.confirmOrder = अंतिम समीक्षा +mobile.checkout.continue.button = जारी रखें +mobile.checkout.continue.shopping = खरीददारी जारी रखें +mobile.checkout.deliveryAddress = डिलीवरी का पता +mobile.checkout.deliveryAddress.selectAddressMessage = वितरण हेतु अपनी पता पुस्तिका से एक पता चुनें, अथवा एक नया पता जोड़ें +mobile.checkout.deliveryAddress.use = उपयोग करें +mobile.checkout.deliveryMethod = वितरण विकल्प +mobile.checkout.edit.link = संपादित करें +mobile.checkout.items.hide = आइटम छिपाएं +mobile.checkout.items.show = और अधिक वस्तुएं दिखाएं +mobile.checkout.paymentMethod = भुगतान का विवरण +mobile.checkout.paymentMethod.add.card = नया कार्ड जोड़ें +mobile.checkout.paymentMethod.addOrSelect.card = अपने वॉलेट से भुगतान हेतु सहेजा गया कार्ड चुनें अथवा नया कार्ड जोड़ें +mobile.payment.issueNumber = प्रकाशन संख्या (मात्र Maestro / Solo / Switch हेतु) +mobile.multi.checkout.selectExistingCard = विद्यमान भुगतान विवरणों में से चुनें +mobile.checkout.multi.button.submit = सबमिट करें + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_id.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_id.properties new file mode 100644 index 000000000..6c9e0b1e9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_id.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Sebutkan alamat pengantaran untuk order Anda +checkout.deliveryMethod.notSelected = Silakan pilih metode pengantaran untuk order Anda +checkout.error.authorization.failed = Maaf, transaksi Anda tidak dapat diselesaikan saat ini; silakan coba lagi nanti atau hubungi layanan pelanggan di nomor 555-555-5555 +checkout.error.cart.notcalculated = Maaf, transaksi Anda tidak dapat diselesaikan saat ini; silakan coba lagi nanti atau hubungi layanan pelanggan di nomor 555-555-5555 +checkout.error.payment.not.accepted = Pembayaran Anda ditolak. Pastikan detail pembayaran Anda sudah benar. +checkout.error.paymentethod.formentry.invalid = Pastikan detail pembayaran Anda sudah benar atau tetapkan metode pembayaran yang lain. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = Nomor kartu tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = Jenis kartu tidak didukung +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = Kode keamanan tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = Bulan berakhir tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = Tahun berakhir tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = Nomor terbit tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = Bulan mulai tidak valid +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = Tahun mulai tidak valid +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Nilainya tidak valid untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Masukkan nomor kartu +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Silakan pilih jenis troli +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Masukkan bulan berakhir +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Masukkan tahun berakhir +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Masukkan nomor terbit +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Masukkan bulan mulai +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Masukkan tahun mulai +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Masukkan nilai untuk ruas ini +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Masukkan nilai untuk ruas ini +checkout.error.tax.missing = Maaf, transaksi Anda tidak dapat diselesaikan saat ini; silakan coba lagi nanti atau hubungi layanan pelanggan di nomor 555-555-5555 +checkout.error.terms.not.accepted = Silakan terima syarat dan ketentuan kami sebelum mengirim order Anda. +checkout.information.delivery.method.changed = Metode pengantaran Anda telah diperbarui sesuai lokasi pengantaran Anda. + +checkout.multi.addEditform = Gunakan formulir ini untuk menambah/mengedit alamat. +checkout.multi.address.added = Alamat Anda telah dibuat. +checkout.multi.address.updated = Alamat Anda telah diperbarui +checkout.multi.addressDetails = Detail Alamat +checkout.multi.breadcrumb = Pengecekan +checkout.multi.cancel = Batal +checkout.multi.confirmOrder = Pemeriksaan Akhir +checkout.multi.deliveryAddress = Lokasi Pengiriman/Pengambilan +checkout.multi.deliveryAddress.addAddress = Tambah alamat baru +checkout.multi.deliveryAddress.address = Alamat +checkout.multi.deliveryAddress.addressBook = Buku Alamat +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = Atau simpan alamat awal Anda: +checkout.multi.deliveryAddress.breadcrumb = Lokasi Pengiriman/Pengambilan +checkout.multi.deliveryAddress.continue = Lanjut +checkout.multi.deliveryAddress.edit = Edit +checkout.multi.deliveryAddress.editAddress = Edit alamat +checkout.multi.deliveryAddress.noExistingAddresses = Anda tidak memiliki satu pun alamat di buku alamat. +checkout.multi.deliveryAddress.noSuggestedAddresses = Tidak ada usulan alamat +checkout.multi.deliveryAddress.remove = Hapus +checkout.multi.deliveryAddress.select = Pilih +checkout.multi.deliveryAddress.selectAddressMessage = Pilih alamat yang ada untuk pengantaran. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verifikasi alamat Anda.
Kami sarankan Anda menerima salahsatu perubahan berikut pada alamat Anda: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Kirim Apa Adanya +checkout.multi.deliveryAddress.stepHeader = 1 - Pilih Alamat Pengantaran +checkout.multi.deliveryAddress.stepHeader.done = 1 - Alamat Pengantaran +checkout.multi.deliveryAddress.useThisAddress = Gunakan Alamat ini +checkout.multi.deliveryMethod = Metode Pengiriman +checkout.multi.deliveryMethod.breadcrumb = Metode Pengiriman +checkout.multi.deliveryMethod.continue = Lanjut +checkout.multi.deliveryMethod.deliveryOptions = Pilihan Pengantaran +checkout.multi.deliveryMethod.edit = Edit +checkout.multi.deliveryMethod.header = Pilihan Pengantaran +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Tidak ada metode pengantaran saat ini. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Metode Pengiriman +checkout.multi.deliveryMethod.stepHeader = 2 - Pilih Metode Pengantaran +checkout.multi.deliveryMethod.stepHeader.done = 2 - Metode Pengantaran +checkout.multi.deliveryMethod.useThisDeliveryMethod = Gunakan Metode Pengantaran yang Dipilih +checkout.multi.hostedOrderPageError.ERROR.150 = Kesalahan umum sistem. Tindakan Anda: Tunggu beberapa menit kemudian kirim ulang order Anda. +checkout.multi.hostedOrderPageError.ERROR.151 = Permintaan telah diterima, tapi sesi server sudah habis. Tindakan Anda: Agar tidak terjadi duplikasi order, jangan kirim ulang permintaan sampai Anda dihubungi tim penjualan kami. +checkout.multi.hostedOrderPageError.ERROR.152 = Permintaan telah diterima, tapi kerja layanan tidak selesai tepat waktu. Tindakan Anda: Agar tidak terjadi duplikasi order, jangan kirim ulang permintaan sampai Anda dihubungi tim penjualan kami. +checkout.multi.hostedOrderPageError.breadcrumb = Kesalahan +checkout.multi.hostedOrderPageError.continue = Lanjutkan +checkout.multi.hostedOrderPageError.globalError = Gagal membuat langganan. Silakan lihat detail kesalahan di bawah. +checkout.multi.hostedOrderPageError.header = Detail Kesalahan +checkout.multi.hostedOrderPostPage.button.submit = Kirim +checkout.multi.hostedOrderPostPage.header.debug = Halaman ini menampilkan semua ruas API HOP (Hosted Order Page) yang akan dikirim ke URL HOP. Halaman ini dapat digunakan untuk melacak kesalahan HOP dengan mengubah nilai-nilai untuk mensimulasikan perilaku yang diinginkan. +checkout.multi.hostedOrderPostPage.header.wait = Harap tunggu sementara kami mengalihkan Anda +checkout.multi.items.to.pickup = Pengambilan: +checkout.multi.next = Lanjut » +checkout.multi.order.summary = Ringkasan Order +checkout.multi.payment = Pembayaran: +checkout.multi.paymentMethod = Alamat Pembayaran & Penagihan +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Alamat Penagihan +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Jika alamat penagihan Anda berbeda dengan alamat pengantaran, gunakan formulir ini untuk memasukkan alamat penagihan Anda +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Masukkan alamat penagihan yang berbeda +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Masukkan detail kartu untuk pembayaran +checkout.multi.paymentMethod.addPaymentDetails.generalError = Ada kesalahan saat menghubungi penyedia pembayaran. Tunggu beberapa menit dan coba lagi. Jika masih bermasalah, hubungi tim penjualan kami. +checkout.multi.paymentMethod.addPaymentDetails.header = Detail Pembayaran +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Detail Kartu +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Simpan detail pembayaran ini di akun saya +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Gunakan kartu yang disimpan +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Pelanggan terdaftar dapat memilih kartu yang disimpan sebelumnya +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Gunakan detail pembayaran ini +checkout.multi.paymentMethod.breadcrumb = Alamat Pembayaran & Penagihan +checkout.multi.paymentMethod.continue = Lanjut +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Masukkan alamat penagihan atau masukkan dulu alamat pengantaran sehingga dapat digunakan sebagai alamat penagihan. +checkout.multi.paymentMethod.createSubscription.failedMsg = Gagal membuat langganan. Periksa nilai yang dimasukkan. +checkout.multi.paymentMethod.edit = Edit +checkout.multi.paymentMethod.paymentDetails.expires = Berakhir {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Tidak ada yang dipilih +checkout.multi.paymentMethod.savedCards.actions = Tindakan +checkout.multi.paymentMethod.savedCards.billingAddress = Alamat Penagihan +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Masukkan Detail Pembayaran Baru +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = Anda tak memiliki kartu apapun yang disimpan +checkout.multi.paymentMethod.savedCards.paymentCard = Kartu Pembayaran +checkout.multi.paymentMethod.savedCards.select = Pilih +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Pilih detail pembayaran yang ada atau masukkan detail pembayaran baru +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Pilih Detail Pembayaran +checkout.multi.paymentMethod.viewSavedPayments = Lihat Pembayaran yang Disimpan +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Lihat area Ringkasan Order untuk informasi lebih lanjut. +checkout.multi.pickup.items = Pengambilan #{0} - {1} Item +checkout.multi.pickupInStore = Ambil di Toko +checkout.multi.pickupInStore.confirm.and.continue = Cukup konfirmasi informasi di bawah dan lanjutkan ke tahap pengecekan berikutnya. +checkout.multi.saveAddress = Simpan Alamat +checkout.multi.secure.checkout = Pengecekan Aman +checkout.multi.shipment.items = Pengiriman - {0} Item +checkout.multi.shipment.pickup.location = Lokasi Pengiriman/Pengambilan +checkout.multi.sop.globalError = Ada kesalahan saat memroses permintaan Anda. Tindakan Anda: Tunggu beberapa menit kemudian kirim ulang order. +checkout.multi.sop.remove = Hapus +checkout.multi.sop.savePaymentInfo = Simpan Info Pembayaran +checkout.multi.sop.useMyDeliveryAddress = Gunakan Alamat Pengantaran saya +checkout.multi.sop.useThisPaymentInfo = Gunakan info pembayaran ini +checkout.multi.summary.breadcrumb = Pemeriksaan Akhir +checkout.multi.deliveryAddress.notprovided = Anda harus mengisikan alamat pengantaran dalam order untuk lanjut ke tahap berikutnya. +checkout.multi.deliveryMethod.notprovided = Anda harus menentukan pilihan pengantaran untuk lanjut ke tahap berikutnya. +checkout.multi.paymentDetails.notprovided = Anda harus mengisikan detail pembayaran dalam order untuk lanjut ke tahap berikutnya. +checkout.orderConfirmation.copySentTo = Kopian detail order Anda telah dikirim ke {0} +checkout.orderConfirmation.orderNumber = Nomor order Anda adalah {0} +checkout.orderConfirmation.orderNumberShort = Order # {0} +checkout.orderConfirmation.orderStatus = Status Order : {0} +checkout.orderConfirmation.pickupItems = {0} Item untuk Ambil di Toko +checkout.orderConfirmation.pickupPoints = {0} Tujuan Ambil di Toko +checkout.orderConfirmation.checkoutSuccessful = Pengecekan Berhasil +checkout.orderConfirmation.success = Order Anda sudah berhasil! +checkout.orderConfirmation.summary = Ringkasan order Anda ada di bawah: +checkout.orderConfirmation.thankYou = Terimakasih atas order Anda. Nomor order Anda adalah {0} +checkout.orderConfirmation.thankYouForOrder = Order Anda berhasil! Terimakasih telah berbelanja bersama kami. +checkout.orderConfirmation.yourItems = Item Anda +checkout.orderConfirmation.continueShopping = Lanjutkan Belanja +checkout.orderDetails.hide = [-] Sembunyikan Detail Order +checkout.orderDetails.show = [+] Tampilkan Detail Order +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Masukkan alamat penagihan atau masukkan dulu alamat pengantaran sehingga dapat digunakan sebagai alamat penagihan. +checkout.paymentMethod.createSubscription.failed = Gagal membuat langganan. Periksa nilai yang dimasukkan. +checkout.paymentMethod.noSecurityCode = Masukkan kode keamanan. +checkout.paymentMethod.notSelected = Masukkan detail pembayaran untuk order Anda +checkout.pickup.confirm.and.continue = Cukup konfirmasi informasi di bawah dan lanjutkan ke tahap pengecekan berikutnya. +checkout.pickup.continue.button = Lanjutkan +checkout.pickup.estimated.total = Perkiraan Total: +checkout.pickup.items.appear.later = Item order yang harus diambil akan muncul nanti di pengecekan +checkout.pickup.items.at.one.location = Semua item dalam order Anda yang dipilih untuk pengambilan saat ini tersedia di lokasi toko berikut: +checkout.pickup.items.available.at.one.location = ITEM AMBILAN ANDA TERSEDIA DI SATU LOKASI (Tidak mempengaruhi pesan antar) +checkout.pickup.items.simplify.pickup.location = Saya ingin mengubah orderan untuk mengambil semua item saya di toko yang sama +checkout.pickup.items.to.be.delivered = Item untuk dikirim +checkout.pickup.items.to.be.shipped = Kirim Ke: +checkout.pickup.items.to.pickup = {0} item untuk diambil +checkout.pickup.no.delivery.required = Tidak diperlukan pengantaran untuk order ini +checkout.pickup.pickup.in.store = Ambil di Toko - {0}, {1} +checkout.pickup.pickup.in.store.title = AMBIL DI TOKO +checkout.pickup.simplifyPickup = Permudah Lokasi Pengambilan +checkout.pickup.store.destinations = {0} tujuan ambil di toko +checkout.placeOrder.failed = Tidak berhasil memasukkan order +checkout.security.code = Kode Keamanan +checkout.summary.edit = Edit +checkout.summary.deliveryAddress = Alamat Pengantaran +checkout.summary.deliveryAddress.edit = Edit +checkout.summary.deliveryAddress.editDeliveryAddressButton = Edit Alamat Pengantaran +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Edit Alamat Pengantaran +checkout.summary.deliveryAddress.header = Alamat Pengantaran +checkout.summary.deliveryAddress.noExistingAddresses = Anda tidak memiliki satu pun alamat di buku alamat. +checkout.summary.deliveryAddress.noneSelected = Tidak ada yang dipilih +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Simpan Alamat Pengiriman +checkout.summary.deliveryAddress.saveAndUseThisAddress = Simpan dan gunakan alamat ini +checkout.summary.deliveryAddress.selectExistingAddress = Pilih Alamat yang Ada +checkout.summary.deliveryAddress.useForNewAddress = Gunakan formulir berikut untuk memasukkan alamat baru +checkout.summary.deliveryAddress.useThisAddress = Gunakan alamat ini +checkout.summary.deliveryMode.editDeliveryMethod = Edit Metode Pengantaran +checkout.summary.deliveryMode.header = Pilihan Pengantaran +checkout.summary.deliveryMode.items.for.pickup = {0} Item untuk Ambil di Toko +checkout.summary.deliveryMode.noneSelected = Tidak ada yang dipilih +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} Tujuan Ambil di Toko +checkout.summary.deliveryMode.selectDeliveryMethod = Pilih Metode Pengantaran +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Metode Pengiriman +checkout.summary.deliveryMode.useThisDeliveryMethod = Gunakan metode pengantaran ini +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Alamat Tagihan +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Jika alamat tagihan Anda berbeda dengan alamat pengantaran, gunakan formulir ini untuk memasukkan alamat tagihan Anda +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Masukkan alamat tagihan yang berbeda +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Masukkan detail kartu untuk pembayaran +checkout.summary.paymentMethod.addPaymentDetails.header = Detail Pembayaran +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Kartu Pembayaran +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Simpan dan gunakan detail pembayaran ini +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Simpan detail pembayaran ini di akun saya +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Gunakan kartu yang disimpan +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Pelanggan terdaftar dapat memilih kartu yang disimpan sebelumnya +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Gunakan detail pembayaran ini +checkout.summary.paymentMethod.billingAddress.header = Alamat Penagihan: +checkout.summary.paymentMethod.editPaymentMethod = Edit Metode Pembayaran +checkout.summary.paymentMethod.header = Detail Pembayaran +checkout.summary.paymentMethod.paymentDetails.expires = Berakhir {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Tidak ada yang dipilih +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Gunakan detail pembayaran ini +checkout.summary.paymentMethod.savedCards.actions = Tindakan +checkout.summary.paymentMethod.savedCards.billingAddress = Alamat Tagihan +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Masukkan detail pembayaran baru +checkout.summary.paymentMethod.savedCards.header = Pilih Detail Pembayaran +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = Anda tak memiliki kartu apapun yang disimpan +checkout.summary.paymentMethod.savedCards.paymentCard = Kartu Pembayaran +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Pilih detail pembayaran yang ada atau masukkan detail pembayaran baru +checkout.summary.paymentMethod.securityCode = Kode Keamanan +checkout.summary.paymentMethod.securityCode.whatIsThis = (Apa ini?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Tiga digit terakhir pada strip tandatangan di bagian belakang kartu. Untuk American Express, empat digit tepat di atas hologram di bagian depan kartu. +checkout.summary.placeOrder = Masukkan Order +checkout.summary.placeOrder.readTermsAndConditions = Dengan memasukkan order, saya menyatakan bahwa saya telah membaca dan menyetujui Syarat & Ketentuan +checkout.summary.placeOrder.readTermsAndConditions.close = Tutup +checkout.summary.reviewYourOrder = Pemeriksaan Akhir +checkout.summary.reviewYourOrderMessage = Silakan periksa orderan Anda dengan teliti! +checkout.summary.select.payment.method = Pilih Metode Pembayaran +checkout.summary.shippingAddress = Alamat Pengiriman + +checkout.express.error.notAvailable = Pengecekan kilat tidak tersedia karena dinonaktifkan. +checkout.express.error.deliveryAddress = Pengecekan kilat tidak tersedia karena Anda tak memiliki alamat pengantaran standar. Silakan set alamat pengantaran standar di akun Anda agar dapat menggunakan Pengecekan Kilat di lain waktu. +checkout.express.error.deliveryMode = Pengecekan kilat tidak tersedia. Ada kesalahan saat mengeset mode pengantaran. +checkout.express.error.paymentInfo = Pengecekan kilat tidak tersedia karena Anda tak memiliki info pembayaran standar. Silakan set info pembayaran standar di akun Anda agar dapat menggunakan Pengecekan Kilat di lain waktu. + + +payment.cardNumber = Nomor kartu +payment.cardNumber.invalid = Masukkan nomor kartu yang valid +payment.cardType = Jenis kartu +payment.cardType.invalid = Silakan pilih jenis kartu +payment.cardType.pleaseSelect = Silakan pilih jenis kartu +payment.cvn = Nomor Verifikasi Kartu +payment.expiryDate = Tanggal berakhir* +payment.expiryMonth.invalid = Silakan pilih bulan berakhir masa kartu +payment.expiryYear.invalid = Silakan pilih tahun berakhir masa kartu +payment.issueNumber = Nomor terbit +payment.issueNumber.invalid = Hanya angka yang diizinkan untuk ruas tersebut +payment.issueNumber.toolong = Nomor terbit terlalu panjang. +payment.month = Bulan +payment.nameOnCard = Nama pada kartu +payment.nameOnCard.invalid = Masukkan nama pada kartu +payment.startDate = Tanggal mulai (hanya Maestro / Solo / Switch) +payment.startDate.invalid = Tanggal mulai harus lebih dulu dari tanggal berakhir +payment.year = Tahun + +paymentMethod.billingAddress.header = Alamat Penagihan: +paymentMethod.header = Detail Pembayaran + +mobile.checkout.cart.viewFullCart = Lihat Troli Penuh +mobile.checkout.cart.viewLess = Lihat sedikit +mobile.checkout.confirmOrder = Pemeriksaan Akhir +mobile.checkout.continue.button = Lanjutkan +mobile.checkout.continue.shopping = Lanjutkan Belanja +mobile.checkout.deliveryAddress = Alamat Pengantaran +mobile.checkout.deliveryAddress.selectAddressMessage = Pilih alamat pengantaran dari buku alamat Anda, atau tambah alamat pengantaran baru +mobile.checkout.deliveryAddress.use = Gunakan +mobile.checkout.deliveryMethod = Pilihan Pengantaran +mobile.checkout.edit.link = Edit +mobile.checkout.items.hide = Sembunyikan Item +mobile.checkout.items.show = Tampilkan Item selebihnya +mobile.checkout.paymentMethod = Detail Pembayaran +mobile.checkout.paymentMethod.add.card = Tambah Kartu Baru +mobile.checkout.paymentMethod.addOrSelect.card = Pilih kartu pembayaran yang disimpan dari dompet Anda atau tambah kartu baru +mobile.payment.issueNumber = Nomor terbit (hanya Maestro / Solo / Switch) +mobile.multi.checkout.selectExistingCard = Pilih dari Detail Pembayaran yang ada +mobile.checkout.multi.button.submit = Kirim + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_it.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_it.properties new file mode 100644 index 000000000..bbf448356 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_it.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Fornire un indirizzo di consegna per l'ordine +checkout.deliveryMethod.notSelected = Selezionare un metodo di consegna per l'ordine +checkout.error.authorization.failed = Siamo spiacenti di informarti che la transazione non è stata completata; ti consigliamo di richiamare più tardi o di contattare il servizio clienti al numero 555-555-5555 +checkout.error.cart.notcalculated = Siamo spiacenti di informarti che la transazione non è stata completata; ti consigliamo di richiamare più tardi o di contattare il servizio clienti al numero 555-555-5555 +checkout.error.payment.not.accepted = Il pagamento è stato respinto. Controllare che i dettagli di pagamento siano corretti. +checkout.error.paymentethod.formentry.invalid = Controllare che i dettagli di pagamento siano corretti o indicare un metodo di pagamento diverso. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = Numero di carta non valido +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = Tipo di carta non supportato +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = Codice di sicurezza non valido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = Mese di scadenza non valido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = Anno di scadenza non valido +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = Numero di emissione non valido +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = Mese di inizio non valido +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = Anno di inizio non valido +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Valore non valido per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Immettere un numero di carta +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Selezionare un tipo di carta +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Immettere un mese di scadenza +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Immettere un anno di scadenza +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Immettere un numero di emissione +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Immettere un mese di inizio +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Immettere un anno di inizio +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Immettere un valore per questo campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Immettere un valore per questo campo +checkout.error.tax.missing = Siamo spiacenti di informarti che la transazione non è stata completata; ti consigliamo di richiamare più tardi o di contattare il servizio clienti al numero 555-555-5555 +checkout.error.terms.not.accepted = Accettare i termini e le condizioni prima di inoltrare l'ordine. +checkout.information.delivery.method.changed = Il metodo di spedizione è stato aggiornato in base alla località di consegna. + +checkout.multi.addEditform = Utilizzare questo modulo per aggiungere/modificare un indirizzo. +checkout.multi.address.added = L'indirizzo è stato creato. +checkout.multi.address.updated = L'indirizzo è stato aggiornato +checkout.multi.addressDetails = Dettagli indirizzo +checkout.multi.breadcrumb = Checkout +checkout.multi.cancel = Annulla +checkout.multi.confirmOrder = Revisione finale +checkout.multi.deliveryAddress = Posizione di spedizione/ritiro +checkout.multi.deliveryAddress.addAddress = Aggiungi nuovo indirizzo +checkout.multi.deliveryAddress.address = Indirizzo +checkout.multi.deliveryAddress.addressBook = Rubrica +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = O mantieni indirizzo originale: +checkout.multi.deliveryAddress.breadcrumb = Posizione di spedizione/ritiro +checkout.multi.deliveryAddress.continue = Avanti +checkout.multi.deliveryAddress.edit = Modifica +checkout.multi.deliveryAddress.editAddress = Modifica indirizzo +checkout.multi.deliveryAddress.noExistingAddresses = Nessun indirizzo presente nella rubrica. +checkout.multi.deliveryAddress.noSuggestedAddresses = Nessun suggerimento di indirizzo +checkout.multi.deliveryAddress.remove = Rimuovi +checkout.multi.deliveryAddress.select = Seleziona +checkout.multi.deliveryAddress.selectAddressMessage = Selezionare un indirizzo esistente per la consegna. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verificare il proprio indirizzo.
Si consiglia di accettare una delle seguenti modifiche all'indirizzo: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Inoltra così com'è +checkout.multi.deliveryAddress.stepHeader = 1 - Seleziona indirizzo di consegna +checkout.multi.deliveryAddress.stepHeader.done = 1 - Indirizzo di consegna +checkout.multi.deliveryAddress.useThisAddress = Utilizza questo indirizzo +checkout.multi.deliveryMethod = Metodo di spedizione +checkout.multi.deliveryMethod.breadcrumb = Metodo di spedizione +checkout.multi.deliveryMethod.continue = Avanti +checkout.multi.deliveryMethod.deliveryOptions = Opzioni di consegna +checkout.multi.deliveryMethod.edit = Modifica +checkout.multi.deliveryMethod.header = Opzioni di consegna +checkout.multi.deliveryMethod.noExistingDeliveryMethod = Nessun metodo di spedizione correntemente esistente. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Metodo di spedizione +checkout.multi.deliveryMethod.stepHeader = 2 - Seleziona metodo di spedizione +checkout.multi.deliveryMethod.stepHeader.done = 2 - Metodo di spedizione +checkout.multi.deliveryMethod.useThisDeliveryMethod = Utilizza metodo di spedizione selezionato +checkout.multi.hostedOrderPageError.ERROR.150 = Errore generale di sistema. Possibile azione: attendere qualche minuto e rinviare l'ordine. +checkout.multi.hostedOrderPageError.ERROR.151 = La richiesta è stata ricevuta, ma si è verificato un timeout del server. Possibile azione: per evitare la duplicazione dell'ordine, non rinviare la richiesta prima di aver contatto il nostro team commerciale. +checkout.multi.hostedOrderPageError.ERROR.152 = La richiesta è stata ricevuta, ma un servizio non ha terminato l'esecuzione in tempo. Possibile azione: per evitare la duplicazione dell'ordine, non rinviare la richiesta prima di aver contatto il nostro team commerciale. +checkout.multi.hostedOrderPageError.breadcrumb = Errore +checkout.multi.hostedOrderPageError.continue = Continua +checkout.multi.hostedOrderPageError.globalError = Impossibile creare la sottoscrizione. Di seguito sono riportati i dettagli dell'errore. +checkout.multi.hostedOrderPageError.header = Dettagli errore +checkout.multi.hostedOrderPostPage.button.submit = Invia +checkout.multi.hostedOrderPostPage.header.debug = Questa pagina visualizza tutti i campi API Hosted Order Page (HOP) che saranno inviati all'URL della HOP. Può essere utilizzata per eseguire il debug della HOP modificando i valori per simulare il comportamento desiderato. +checkout.multi.hostedOrderPostPage.header.wait = Attendere durante il trasferimento +checkout.multi.items.to.pickup = Ritiro: +checkout.multi.next = Avanti » +checkout.multi.order.summary = Riepilogo ordine +checkout.multi.payment = Pagamento: +checkout.multi.paymentMethod = Indirizzo di fatturazione e pagamento +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Indirizzo di fatturazione +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Se l'indirizzo di fatturazione è diverso dall'indirizzo di consegna, utilizzare questo modulo per immetterlo +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Immettere un indirizzo di fatturazione diverso +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Immettere i dettagli della carta per il pagamento +checkout.multi.paymentMethod.addPaymentDetails.generalError = Si è verificato un errore durante la comunicazione con il gestore dei pagamenti. Attendere alcuni minuti e riprovare. Se il problema persiste, contattare il nostro team commerciale. +checkout.multi.paymentMethod.addPaymentDetails.header = Dettagli di pagamento +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Dettagli carta +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Salva questi dettagli di pagamento nel mio account +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Utilizza una carta salvata +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = I clienti registrati possono selezionare una carta salvata in precedenza +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizza questi dettagli di pagamento +checkout.multi.paymentMethod.breadcrumb = Indirizzo di fatturazione e pagamento +checkout.multi.paymentMethod.continue = Avanti +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Immettere prima un indirizzo di fatturazione o un indirizzo di consegna da utilizzare come indirizzo di fatturazione. +checkout.multi.paymentMethod.createSubscription.failedMsg = Impossibile creare una sottoscrizione. Controllare i valori immessi. +checkout.multi.paymentMethod.edit = Modifica +checkout.multi.paymentMethod.paymentDetails.expires = Scadenza: {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Nessuno selezionato +checkout.multi.paymentMethod.savedCards.actions = Azioni +checkout.multi.paymentMethod.savedCards.billingAddress = Indirizzo di fatturazione +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Immettere nuovi dettagli di pagamento +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = Nessuna carta salvata +checkout.multi.paymentMethod.savedCards.paymentCard = Carta di pagamento +checkout.multi.paymentMethod.savedCards.select = Seleziona +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Selezionare dettagli di pagamento esistenti o immetterne di nuovi +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Seleziona dettagli di pagamento +checkout.multi.paymentMethod.viewSavedPayments = Visualizza pagamenti salvati +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Visualizzare l'area relativa al riepilogo dell'ordine per ulteriori informazioni. +checkout.multi.pickup.items = Ritiro #{0} - {1} Elemento(i) +checkout.multi.pickupInStore = Prelievo in negozio +checkout.multi.pickupInStore.confirm.and.continue = Confermare le seguenti informazioni e proseguire alla fase di checkout successiva. +checkout.multi.saveAddress = Salva indirizzo +checkout.multi.secure.checkout = Checkout sicuro +checkout.multi.shipment.items = Spedizione - {0} Elemento(i) +checkout.multi.shipment.pickup.location = Posizione di spedizione/ritiro +checkout.multi.sop.globalError = Si è verificato un errore durante l'elaborazione della richiesta. Possibile azione: attendere qualche minuto e rinviare l'ordine. +checkout.multi.sop.remove = Rimuovi +checkout.multi.sop.savePaymentInfo = Salva informazioni sul pagamento +checkout.multi.sop.useMyDeliveryAddress = Utilizza indirizzo di spedizione personale +checkout.multi.sop.useThisPaymentInfo = Utilizza queste informazioni di pagamento +checkout.multi.summary.breadcrumb = Revisione finale +checkout.multi.deliveryAddress.notprovided = Per passare alla fase successiva, è necessario fornire un indirizzo di spedizione. +checkout.multi.deliveryMethod.notprovided = Per passare alla fase successiva, è necessario fornire un'opzione di consegna. +checkout.multi.paymentDetails.notprovided = Per passare alla fase successiva, è necessario fornire dei dettagli di pagamento. +checkout.orderConfirmation.copySentTo = Una copia dei dettagli dell''ordine è stata inviata a {0} +checkout.orderConfirmation.orderNumber = Il numero dell''ordine è {0} +checkout.orderConfirmation.orderNumberShort = N. ordine {0} +checkout.orderConfirmation.orderStatus = Stato ordine: {0} +checkout.orderConfirmation.pickupItems = {0} elementi per Prelievo in negozio +checkout.orderConfirmation.pickupPoints = {0} destinazioni prelievo in negozio +checkout.orderConfirmation.checkoutSuccessful = Checkout completato correttamente +checkout.orderConfirmation.success = L'ordine è andato a buon fine! +checkout.orderConfirmation.summary = Di seguito viene fornito un riepilogo dell'ordine: +checkout.orderConfirmation.thankYou = Ti ringraziamo per l''ordine effettuato. Il tuo numero d''ordine è {0} +checkout.orderConfirmation.thankYouForOrder = L'ordine è andato a buon fine. Ti ringraziamo per aver fatto acquisti con noi. +checkout.orderConfirmation.yourItems = Elementi personali +checkout.orderConfirmation.continueShopping = Continua l'acquisto +checkout.orderDetails.hide = [-] Nascondi dettagli ordine +checkout.orderDetails.show = [+] Visualizza dettagli ordine +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Immettere prima un indirizzo di fatturazione o un indirizzo di consegna da utilizzare come indirizzo di fatturazione. +checkout.paymentMethod.createSubscription.failed = Impossibile creare una sottoscrizione. Controllare i valori immessi. +checkout.paymentMethod.noSecurityCode = Fornire un codice di sicurezza. +checkout.paymentMethod.notSelected = Fornire dei dettagli di pagamento per l'ordine +checkout.pickup.confirm.and.continue = Confermare le seguenti informazioni e proseguire alla fase di checkout successiva. +checkout.pickup.continue.button = Continua +checkout.pickup.estimated.total = Totale stimato: +checkout.pickup.items.appear.later = Gli elementi dell'ordine da prelevare verranno visualizzati in un secondo momento nel checkout +checkout.pickup.items.at.one.location = Tutti gli elementi dell'ordine selezionati per il prelievo sono correntemente disponibili in queste ubicazioni punti vendita: +checkout.pickup.items.available.at.one.location = GLI ELEMENTI PRELIEVO SONO DISPONIBILI PRESSO UN'UBICAZIONE (questo non ha effetto sugli ordini in consegna) +checkout.pickup.items.simplify.pickup.location = Desidero modificare il mio ordine per prelevare tutti gli elementi nello stesso punto vendita +checkout.pickup.items.to.be.delivered = Elementi da consegnare +checkout.pickup.items.to.be.shipped = Spedisci a: +checkout.pickup.items.to.pickup = {0} elementi da prelevare +checkout.pickup.no.delivery.required = Nessuna consegna richiesta per questo ordine +checkout.pickup.pickup.in.store = Prelievo in punto vendita - {0}, {1} +checkout.pickup.pickup.in.store.title = PRELIEVO IN PUNTO VENDITA +checkout.pickup.simplifyPickup = Semplifica ubicazione prelievo +checkout.pickup.store.destinations = {0} destinazioni prelievo in punto vendita +checkout.placeOrder.failed = Impossibile emettere l'ordine +checkout.security.code = Codice di sicurezza +checkout.summary.edit = Modifica +checkout.summary.deliveryAddress = Indirizzo di consegna +checkout.summary.deliveryAddress.edit = Modifica +checkout.summary.deliveryAddress.editDeliveryAddressButton = Modifica indirizzo di consegna +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Modifica indirizzo di consegna +checkout.summary.deliveryAddress.header = Indirizzo di consegna +checkout.summary.deliveryAddress.noExistingAddresses = Nessun indirizzo presente nella rubrica. +checkout.summary.deliveryAddress.noneSelected = Nessuno selezionato +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Salva indirizzo di spedizione +checkout.summary.deliveryAddress.saveAndUseThisAddress = Salva e utilizza questo indirizzo +checkout.summary.deliveryAddress.selectExistingAddress = Seleziona indirizzo esistente +checkout.summary.deliveryAddress.useForNewAddress = Utilizzare questo modulo per immettere un nuovo indirizzo +checkout.summary.deliveryAddress.useThisAddress = Utilizza questo indirizzo +checkout.summary.deliveryMode.editDeliveryMethod = Modifica metodo di consegna +checkout.summary.deliveryMode.header = Opzioni di consegna +checkout.summary.deliveryMode.items.for.pickup = {0} elementi per prelievo in punto vendita +checkout.summary.deliveryMode.noneSelected = Nessuno selezionato +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} destinazioni prelievo punto vendita +checkout.summary.deliveryMode.selectDeliveryMethod = Seleziona metodo di consegna +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Metodo di spedizione +checkout.summary.deliveryMode.useThisDeliveryMethod = Utilizza questo metodo di consegna +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Indirizzo di fatturazione +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Se l'indirizzo di fatturazione è diverso dall'indirizzo di consegna, utilizzare questo modulo per immetterlo +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Immettere un indirizzo di fatturazione diverso +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Immettere i dettagli della carta per il pagamento +checkout.summary.paymentMethod.addPaymentDetails.header = Dettagli di pagamento +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Carta di pagamento +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Salva e utilizza questi dettagli di pagamento +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Salva questi dettagli di pagamento nel mio account +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Utilizza una carta salvata +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = I clienti registrati possono selezionare una carta salvata in precedenza +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Utilizza questi dettagli di pagamento +checkout.summary.paymentMethod.billingAddress.header = Indirizzo di fatturazione: +checkout.summary.paymentMethod.editPaymentMethod = Modifica metodo di pagamento +checkout.summary.paymentMethod.header = Dettagli di pagamento +checkout.summary.paymentMethod.paymentDetails.expires = Scadenza: {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Nessuno selezionato +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Utilizza questi dettagli di pagamento +checkout.summary.paymentMethod.savedCards.actions = Azioni +checkout.summary.paymentMethod.savedCards.billingAddress = Indirizzo di fatturazione +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Immettere nuovi dettagli di pagamento +checkout.summary.paymentMethod.savedCards.header = Seleziona dettagli pagamento +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = Nessuna carta salvata +checkout.summary.paymentMethod.savedCards.paymentCard = Carta di pagamento +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Selezionare dettagli di pagamento esistenti o immetterne di nuovi +checkout.summary.paymentMethod.securityCode = Codice di sicurezza +checkout.summary.paymentMethod.securityCode.whatIsThis = (Che cos'è questo?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Le ultime 3 cifre sulla striscia della firma sul retro della carta. Nelle American Express, è un codice di 4 cifre appena sopra l'ologramma nella parte anteriore della carta. +checkout.summary.placeOrder = Emetti ordine +checkout.summary.placeOrder.readTermsAndConditions = Effettuando l''ordine, confermo di aver letto e accettato i Termini e condizioni +checkout.summary.placeOrder.readTermsAndConditions.close = Chiudi +checkout.summary.reviewYourOrder = Revisione finale +checkout.summary.reviewYourOrderMessage = Verificare attentamente l'ordine! +checkout.summary.select.payment.method = Seleziona metodo di pagamento +checkout.summary.shippingAddress = Indirizzo di spedizione + +checkout.express.error.notAvailable = Il checkout rapido non è disponibile perché è disabilitato. +checkout.express.error.deliveryAddress = Il checkout rapido non è disponibile perché non è stato indicato un indirizzo di consegna predefinito. Per utilizzare il checkout rapido la prossima volta, impostare un indirizzo di consegna predefinito nel proprio account. +checkout.express.error.deliveryMode = Il checkout rapido non è disponibile. Si è verificato un errore durante l'impostazione della modalità di consegna. +checkout.express.error.paymentInfo = Il checkout rapido non è disponibile perché non sono state impostate informazioni di pagamento predefinite. Per utilizzare il checkout rapido la prossima volta, impostare delle informazioni di pagamento predefinite nel proprio account. + + +payment.cardNumber = Numero della carta +payment.cardNumber.invalid = Inserire un numero di carta valido +payment.cardType = Tipo di carta +payment.cardType.invalid = Selezionare un tipo di carta +payment.cardType.pleaseSelect = Selezionare un tipo di carta +payment.cvn = Numero di verifica carta +payment.expiryDate = Data di scadenza* +payment.expiryMonth.invalid = Selezionare il mese di scadenza della carta +payment.expiryYear.invalid = Selezionare l'anno di scadenza sulla carta +payment.issueNumber = Numero di emissione +payment.issueNumber.invalid = In questo campo sono consentiti solo numeri +payment.issueNumber.toolong = Il numero di emissione è troppo lungo. +payment.month = Mese +payment.nameOnCard = Nome sulla carta +payment.nameOnCard.invalid = Immettere il nome riportato sulla carta +payment.startDate = Data di inizio (soltanto Maestro/Solo/Switch) +payment.startDate.invalid = La data di inizio deve precedere la data di scadenza +payment.year = Anno + +paymentMethod.billingAddress.header = Indirizzo di fatturazione: +paymentMethod.header = Dettagli di pagamento + +mobile.checkout.cart.viewFullCart = Visualizza carrello intero +mobile.checkout.cart.viewLess = Visualizza meno +mobile.checkout.confirmOrder = Revisione finale +mobile.checkout.continue.button = Continua +mobile.checkout.continue.shopping = Continua l'acquisto +mobile.checkout.deliveryAddress = Indirizzo di consegna +mobile.checkout.deliveryAddress.selectAddressMessage = Selezionare un indirizzo di consegna dalla propria rubrica o aggiungerne uno nuovo +mobile.checkout.deliveryAddress.use = Utilizza +mobile.checkout.deliveryMethod = Opzioni di consegna +mobile.checkout.edit.link = Modifica +mobile.checkout.items.hide = Nascondi elementi +mobile.checkout.items.show = Mostra altri elementi +mobile.checkout.paymentMethod = Dettagli di pagamento +mobile.checkout.paymentMethod.add.card = Aggiungi nuova carta +mobile.checkout.paymentMethod.addOrSelect.card = Selezionare una carta di pagamento salvata nel Portafoglio o aggiungere una nuova carta +mobile.payment.issueNumber = Numero di emissione (soltanto Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = Scegli da dettagli di pagamento esistenti +mobile.checkout.multi.button.submit = Invia + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ja.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ja.properties new file mode 100644 index 000000000..7840c8cb1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ja.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = ご注文の配送先住所を入力してください +checkout.deliveryMethod.notSelected = 配送方法を選択してください +checkout.error.authorization.failed = 申し訳ありませんが、今回のトランザクションを完了できませんでした。後でもう一度やり直すか、カスタマ サービス: 555-555-5555 にお問い合わせください +checkout.error.cart.notcalculated = 申し訳ありませんが、今回のトランザクションを完了できませんでした。後でもう一度やり直すか、カスタマ サービス: 555-555-5555 にお問い合わせください +checkout.error.payment.not.accepted = 支払が拒否されました。支払い方法が正しいことを確認してください. +checkout.error.paymentethod.formentry.invalid = 支払い方法が正しいか確認するか、別の支払方法を入力してください. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = カード番号が無効です +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = カードの種類がサポートされていません +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = セキュリティ コードが無効です +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = 有効期限月が無効です +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = 有効期限年が無効です +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = 発行番号が無効です +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = 開始月が無効です +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = 開始年が無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = この値は、このフィールドには無効です +checkout.error.paymentethod.formentry.sop.missing.billTo_city = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_country = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_email = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_state = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = カード番号を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_cardType = カート タイプを選択してください +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = 有効期限月を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = 有効期限年を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = 発行番号を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = 開始月を入力してください +checkout.error.paymentethod.formentry.sop.missing.card_startYear = 開始年を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = このフィールドに値を入力してください +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = このフィールドに値を入力してください +checkout.error.tax.missing = 申し訳ありませんが、今回のトランザクションを完了できませんでした。後でもう一度やり直すか、カスタマ サービス: 555-555-5555 にお問い合わせください +checkout.error.terms.not.accepted = 注文を送信する前に利用条件に同意してください. +checkout.information.delivery.method.changed = 配送場所に基づいて、配送方法が更新されました. + +checkout.multi.addEditform = このフォームを使用して、住所を追加または編集してください. +checkout.multi.address.added = 住所が作成されました. +checkout.multi.address.updated = 住所が更新されました +checkout.multi.addressDetails = 住所の詳細 +checkout.multi.breadcrumb = チェックアウト +checkout.multi.cancel = キャンセル +checkout.multi.confirmOrder = 最終確認 +checkout.multi.deliveryAddress = 出荷/受け取り場所 +checkout.multi.deliveryAddress.addAddress = 新しい住所を追加 +checkout.multi.deliveryAddress.address = 住所 +checkout.multi.deliveryAddress.addressBook = 住所 +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = または元の住所を保持: +checkout.multi.deliveryAddress.breadcrumb = 出荷/受け取り場所 +checkout.multi.deliveryAddress.continue = 次へ +checkout.multi.deliveryAddress.edit = 編集 +checkout.multi.deliveryAddress.editAddress = 住所を編集 +checkout.multi.deliveryAddress.noExistingAddresses = アドレス帳に住所がありません. +checkout.multi.deliveryAddress.noSuggestedAddresses = 住所の候補がありません +checkout.multi.deliveryAddress.remove = 削除 +checkout.multi.deliveryAddress.select = 選択 +checkout.multi.deliveryAddress.selectAddressMessage = 配送に既存の住所を選択する. +checkout.multi.deliveryAddress.selectSuggestedAddress = 住所を確認してください。
住所に対して次のいずれかの変更を行うことをお勧めします: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = そのまま送信 +checkout.multi.deliveryAddress.stepHeader = 1 - 配送先を選択 +checkout.multi.deliveryAddress.stepHeader.done = 1 - 配送住所 +checkout.multi.deliveryAddress.useThisAddress = この住所を使用 +checkout.multi.deliveryMethod = 出荷方法 +checkout.multi.deliveryMethod.breadcrumb = 出荷方法 +checkout.multi.deliveryMethod.continue = 次へ +checkout.multi.deliveryMethod.deliveryOptions = 配送オプション +checkout.multi.deliveryMethod.edit = 編集 +checkout.multi.deliveryMethod.header = 配送オプション +checkout.multi.deliveryMethod.noExistingDeliveryMethod = 現在配送方法が存在しません. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = 出荷方法 +checkout.multi.deliveryMethod.stepHeader = 2 - 配送方法を選択 +checkout.multi.deliveryMethod.stepHeader.done = 2 - 配送方法 +checkout.multi.deliveryMethod.useThisDeliveryMethod = 選択した配送方法を使用 +checkout.multi.hostedOrderPageError.ERROR.150 = システム エラーが発生しました。実行できるアクション: しばらく待ってから注文を再送信してください. +checkout.multi.hostedOrderPageError.ERROR.151 = リクエストを受信しましたが、サーバー タイムアウトが発生しました。実行できるアクション: 注文の重複を避けるために、セールス チームにお問い合わせいただくまでは、リクエストを再送信しないでください. +checkout.multi.hostedOrderPageError.ERROR.152 = リクエストを受信しましたが、時間内に実行完了できませんでした。実行できるアクション: 注文の重複を避けるために、セールス チームにお問い合わせいただくまでは、リクエストを再送信しないでください. +checkout.multi.hostedOrderPageError.breadcrumb = エラー +checkout.multi.hostedOrderPageError.continue = 続行 +checkout.multi.hostedOrderPageError.globalError = 購読の作成に失敗しました。エラーの詳細は下記を参照してください. +checkout.multi.hostedOrderPageError.header = エラーの詳細 +checkout.multi.hostedOrderPostPage.button.submit = 送信 +checkout.multi.hostedOrderPostPage.header.debug = このページには、HOP URL に送信される、すべてのホスト済み注文ページ (HOP) API フィールドが表示されます。このページを使用すると、指定の動作をシミュレートするための値を変更することで、HOP をデバッグすることができます. +checkout.multi.hostedOrderPostPage.header.wait = 転送する間、しばらくお待ちください +checkout.multi.items.to.pickup = 受け取り: +checkout.multi.next = 次へ » +checkout.multi.order.summary = 注文内容 +checkout.multi.payment = 支払: +checkout.multi.paymentMethod = 支払および請求先住所 +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = 請求先住所 +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 請求先住所と配送先住所が異なる場合は、このフォームを使用して請求先住所を入力してください +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 別の請求先住所を入力する +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = クレジットカード情報を入力してください +checkout.multi.paymentMethod.addPaymentDetails.generalError = 支払プロバイダーへの問い合わせでエラーが発生しました。少し待ってからもう一度やり直してください。問題が解決しない場合は、セールス チームにお問い合わせください. +checkout.multi.paymentMethod.addPaymentDetails.header = 支払い方法 +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = カードの詳細 +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = この支払い方法を自分のアカウントに保存 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = 保存済みカードを使用 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = 登録済みのお客様は、以前に保存したカードを選択できます +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = これらの支払い方法を使用 +checkout.multi.paymentMethod.breadcrumb = 支払および請求先住所 +checkout.multi.paymentMethod.continue = 次へ +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = 請求先住所を入力するか、配送先住所を入力して、請求先住所として使用できるようにしてください. +checkout.multi.paymentMethod.createSubscription.failedMsg = 購読の作成に失敗しました。入力した値を確認してください. +checkout.multi.paymentMethod.edit = 編集 +checkout.multi.paymentMethod.paymentDetails.expires = 有効期限 {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = 選択されていません +checkout.multi.paymentMethod.savedCards.actions = アクション +checkout.multi.paymentMethod.savedCards.billingAddress = 請求先住所 +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = 新しい支払い方法を入力 +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = 保存済みのカードがありません +checkout.multi.paymentMethod.savedCards.paymentCard = クレジットカード +checkout.multi.paymentMethod.savedCards.select = 選択 +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = 既存の支払い方法を選択するか、新しい支払い方法を入力してください +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - 支払い方法を選択 +checkout.multi.paymentMethod.viewSavedPayments = 保存した支払方法を表示 +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = 詳しい情報については、[注文内容] 領域を確認してください. +checkout.multi.pickup.items = 受け取り #{0} - {1} 個のアイテム +checkout.multi.pickupInStore = 店頭受け取り +checkout.multi.pickupInStore.confirm.and.continue = 下記の情報を確認して、次のステップのチェックアウトに進んでください. +checkout.multi.saveAddress = 住所を保存 +checkout.multi.secure.checkout = セキュアなチェックアウト +checkout.multi.shipment.items = 出荷 - {0} 個のアイテム +checkout.multi.shipment.pickup.location = 出荷/受け取り場所 +checkout.multi.sop.globalError = リクエストの処理中にエラーが発生しました。実行できるアクション: しばらく待ってから注文を再送信してください. +checkout.multi.sop.remove = 削除 +checkout.multi.sop.savePaymentInfo = 支払情報を保存 +checkout.multi.sop.useMyDeliveryAddress = 配送先を使用 +checkout.multi.sop.useThisPaymentInfo = この支払情報を使用 +checkout.multi.summary.breadcrumb = 最終確認 +checkout.multi.deliveryAddress.notprovided = 次のステップに進むために、配送先を入力してください. +checkout.multi.deliveryMethod.notprovided = 次のステップに進むために、配送オプションを入力してください. +checkout.multi.paymentDetails.notprovided = 次のステップに進むために、支払い方法を入力してください. +checkout.orderConfirmation.copySentTo = ご注文内容を {0} に送信しました +checkout.orderConfirmation.orderNumber = お客様の注文番号は {0} です +checkout.orderConfirmation.orderNumberShort = 注文 # {0} +checkout.orderConfirmation.orderStatus = 注文ステータス : {0} +checkout.orderConfirmation.pickupItems = {0} 個の店頭受け取りアイテム +checkout.orderConfirmation.pickupPoints = {0} 個のピックアップ先店舗 +checkout.orderConfirmation.checkoutSuccessful = 正常にチェックアウトされました +checkout.orderConfirmation.success = 注文は正常に処理されました! +checkout.orderConfirmation.summary = お客様の注文内容は以下のとおりです: +checkout.orderConfirmation.thankYou = ご注文いただきありがとうございました。お客様の注文番号は {0} です +checkout.orderConfirmation.thankYouForOrder = 注文は正常に処理されました。ご利用いただきありがとうございました. +checkout.orderConfirmation.yourItems = アイテム +checkout.orderConfirmation.continueShopping = 買い物を続ける +checkout.orderDetails.hide = [-] 注文の詳細を非表示 +checkout.orderDetails.show = [+] 注文の詳細を表示 +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = 請求先住所を入力するか、配送先住所を入力して、請求先住所として使用できるようにしてください. +checkout.paymentMethod.createSubscription.failed = 購読の作成に失敗しました。入力した値を確認してください. +checkout.paymentMethod.noSecurityCode = セキュリティ コードを入力してください. +checkout.paymentMethod.notSelected = ご注文の支払い方法を入力してください +checkout.pickup.confirm.and.continue = 下記の情報を確認して、次のステップのチェックアウトに進んでください. +checkout.pickup.continue.button = 続行 +checkout.pickup.estimated.total = 見積合計: +checkout.pickup.items.appear.later = ピックアップする注文アイテムが、後でチェックアウト時に表示されます +checkout.pickup.items.at.one.location = 注文でピックアップを選択したすべてのアイテムが、これらの店舗で現在受け取り可能です: +checkout.pickup.items.available.at.one.location = 受け取りアイテムが、1 店舗で受け取り可能です (配送注文に影響しません) +checkout.pickup.items.simplify.pickup.location = 注文を、同じ店舗ですべてのアイテムを受け取るように変更したい +checkout.pickup.items.to.be.delivered = 配送される項目 +checkout.pickup.items.to.be.shipped = 出荷先: +checkout.pickup.items.to.pickup = 受け取る {0} 個のアイテム +checkout.pickup.no.delivery.required = 本注文については配送不要 +checkout.pickup.pickup.in.store = 店頭受け取り - {0}、{1} +checkout.pickup.pickup.in.store.title = 店頭受け取り +checkout.pickup.simplifyPickup = 受け取り場所を単純化 +checkout.pickup.store.destinations = {0} 店舗の受け取り場所 +checkout.placeOrder.failed = 注文を実行できませんでした +checkout.security.code = セキュリティ コード +checkout.summary.edit = 編集 +checkout.summary.deliveryAddress = 配送先 +checkout.summary.deliveryAddress.edit = 編集 +checkout.summary.deliveryAddress.editDeliveryAddressButton = 配送先を編集 +checkout.summary.deliveryAddress.enterDeliveryAddressButton = 配送先を編集 +checkout.summary.deliveryAddress.header = 配送先 +checkout.summary.deliveryAddress.noExistingAddresses = アドレス帳に住所がありません. +checkout.summary.deliveryAddress.noneSelected = 選択されていません +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = 配送先住所を保存 +checkout.summary.deliveryAddress.saveAndUseThisAddress = この住所を保存して使用 +checkout.summary.deliveryAddress.selectExistingAddress = 既存の住所を選択 +checkout.summary.deliveryAddress.useForNewAddress = このフォームを使用して新しい住所を入力してください +checkout.summary.deliveryAddress.useThisAddress = この住所を使用 +checkout.summary.deliveryMode.editDeliveryMethod = 配送方法を編集 +checkout.summary.deliveryMode.header = 配送オプション +checkout.summary.deliveryMode.items.for.pickup = {0} 個の店頭受け取りアイテム +checkout.summary.deliveryMode.noneSelected = 選択されていません +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} 店舗の受け取り場所 +checkout.summary.deliveryMode.selectDeliveryMethod = 配送方法を選択 +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = 出荷方法 +checkout.summary.deliveryMode.useThisDeliveryMethod = この配送方法を使用 +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = 請求先住所 +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 請求先住所と配送先住所が異なる場合は、このフォームを使用して請求先住所を入力してください +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 別の請求先住所を入力する +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = クレジットカード情報を入力してください +checkout.summary.paymentMethod.addPaymentDetails.header = 支払い方法 +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = クレジットカード +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = これらの支払い方法を保存して使用 +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = この支払い方法を自分のアカウントに保存 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = 保存済みカードを使用 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = 登録済みのお客様は、以前に保存したカードを選択できます +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = これらの支払い方法を使用 +checkout.summary.paymentMethod.billingAddress.header = 請求先住所: +checkout.summary.paymentMethod.editPaymentMethod = 支払い方法を編集 +checkout.summary.paymentMethod.header = 支払い方法 +checkout.summary.paymentMethod.paymentDetails.expires = 有効期限 {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = 選択されていません +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = これらの支払い方法を使用 +checkout.summary.paymentMethod.savedCards.actions = アクション +checkout.summary.paymentMethod.savedCards.billingAddress = 請求先住所 +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = 新しい支払い方法を入力 +checkout.summary.paymentMethod.savedCards.header = 支払い方法を選択 +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = 保存済みのカードがありません +checkout.summary.paymentMethod.savedCards.paymentCard = クレジットカード +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = 既存の支払い方法を選択するか、新しい支払い方法を入力してください +checkout.summary.paymentMethod.securityCode = セキュリティ コード +checkout.summary.paymentMethod.securityCode.whatIsThis = (説明を見る) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = カード裏面の署名ストリップの最後の 3 桁。アメリカン エクスプレスでは、カード表側のホログラムのすぐ上の 4 桁です. +checkout.summary.placeOrder = ご注文 +checkout.summary.placeOrder.readTermsAndConditions = 注文を行うと、利用条件を読んで同意したことになります +checkout.summary.placeOrder.readTermsAndConditions.close = 閉じる +checkout.summary.reviewYourOrder = 最終確認 +checkout.summary.reviewYourOrderMessage = 注文をもう一度確認してください! +checkout.summary.select.payment.method = 支払い方法を選択 +checkout.summary.shippingAddress = 配送先 + +checkout.express.error.notAvailable = お急ぎチェックアウトが無効化されているため、使用できません. +checkout.express.error.deliveryAddress = 既定の配送先がないため、お急ぎチェックアウトを使用できません。アカウントに既定の配送先を設定して、次回にお急ぎチェックアウトを使用できるようにしてください. +checkout.express.error.deliveryMode = お急ぎチェックアウトを使用できません。配送モードの設定中にエラーが発生しました. +checkout.express.error.paymentInfo = 既定の支払い情報がないため、お急ぎチェックアウトを使用できません。アカウントに既定の支払い情報を設定して、次回にお急ぎチェックアウトを使用できるようにしてください. + + +payment.cardNumber = カード番号 +payment.cardNumber.invalid = 有効なカード番号を入力してください +payment.cardType = カードの種類 +payment.cardType.invalid = カードの種類を選択してください +payment.cardType.pleaseSelect = カードの種類を選択してください +payment.cvn = カードのセキュリティコード +payment.expiryDate = 有効期限* +payment.expiryMonth.invalid = カードの終了月を選択してください +payment.expiryYear.invalid = カードの終了年を選択してください +payment.issueNumber = 発行番号 +payment.issueNumber.invalid = そのフィールドで使用できるのは数字のみです +payment.issueNumber.toolong = 発行番号が長すぎます. +payment.month = 月 +payment.nameOnCard = カード名義人 +payment.nameOnCard.invalid = カードに記載されている名前を入力してください +payment.startDate = 開始日 (Maestro / Solo / Switch のみ) +payment.startDate.invalid = 開始日は有効期限より前である必要があります +payment.year = 年 + +paymentMethod.billingAddress.header = 請求先住所: +paymentMethod.header = 支払い方法 + +mobile.checkout.cart.viewFullCart = カート全体を表示 +mobile.checkout.cart.viewLess = 少なく表示 +mobile.checkout.confirmOrder = 最終確認 +mobile.checkout.continue.button = 続行 +mobile.checkout.continue.shopping = 買い物を続ける +mobile.checkout.deliveryAddress = 配送先 +mobile.checkout.deliveryAddress.selectAddressMessage = アドレス帳から配送先を選択するか、新しい配送先を追加してください +mobile.checkout.deliveryAddress.use = 使用 +mobile.checkout.deliveryMethod = 配送オプション +mobile.checkout.edit.link = 編集 +mobile.checkout.items.hide = アイテムを非表示 +mobile.checkout.items.show = アイテムをさらに表示 +mobile.checkout.paymentMethod = 支払い方法 +mobile.checkout.paymentMethod.add.card = 新しいカードを追加 +mobile.checkout.paymentMethod.addOrSelect.card = ウォレットから保存したクレジットカードを選択するか、新しいカードを追加してください +mobile.payment.issueNumber = 発行番号 (Maestro / Solo / Switch のみ) +mobile.multi.checkout.selectExistingCard = 既存の支払方法から選択 +mobile.checkout.multi.button.submit = 送信 + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ko.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ko.properties new file mode 100644 index 000000000..2a82f6c00 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ko.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = 주문에 대한 배송지 주소를 제공하십시오 +checkout.deliveryMethod.notSelected = 주문에 대한 배송 방법을 선택하십시오 +checkout.error.authorization.failed = 죄송합니다. 현재 귀하의 트랜잭션을 완료할 수 없습니다. 나중에 다시 시도하거나 고객 서비스 555-555-5555번으로 문의해 주십시오 +checkout.error.cart.notcalculated = 죄송합니다. 현재 귀하의 트랜잭션을 완료할 수 없습니다. 나중에 다시 시도하거나 고객 서비스 555-555-5555번으로 문의해 주십시오 +checkout.error.payment.not.accepted = 지불이 거부되었습니다. 지불 세부 사항이 올바른지 확인하십시오. +checkout.error.paymentethod.formentry.invalid = 지불 세부 사항이 올바른지 확인하거나 다른 지불 방법을 제공하십시오. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = 카드 번호가 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = 카드 종류가 지원되지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = 보안 코드가 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = 만료 월이 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = 만료 연도가 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = 발행 번호가 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = 시작 월이 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = 시작 연도가 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = 이 값은 이 필드에 대해 유효하지 않습니다 +checkout.error.paymentethod.formentry.sop.missing.billTo_city = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_country = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_email = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_state = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = 카드 번호를 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_cardType = 카드 종류를 선택하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = 만료 월을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = 만료 연도를 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = 발급 번호를 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = 시작 월을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.card_startYear = 시작 연도를 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = 이 필드에 대한 값을 입력하십시오 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = 이 필드에 대한 값을 입력하십시오 +checkout.error.tax.missing = 죄송합니다. 현재 귀하의 트랜잭션을 완료할 수 없습니다. 나중에 다시 시도하거나 고객 서비스 555-555-5555번으로 문의해 주십시오 +checkout.error.terms.not.accepted = 주문을 제출하기 전에 이용 약관에 동의하십시오. +checkout.information.delivery.method.changed = 배송 방법이 배송 위치를 기반으로 업데이트되었습니다. + +checkout.multi.addEditform = 이 양식을 사용하여 주소를 추가/편집하십시오. +checkout.multi.address.added = 주소가 만들어졌습니다. +checkout.multi.address.updated = 주소가 업데이트되었습니다 +checkout.multi.addressDetails = 주소 세부 사항 +checkout.multi.breadcrumb = 체크아웃 +checkout.multi.cancel = 취소 +checkout.multi.confirmOrder = 최종 검토 +checkout.multi.deliveryAddress = 배송/픽업 장소 +checkout.multi.deliveryAddress.addAddress = 새 주소 추가 +checkout.multi.deliveryAddress.address = 주소 +checkout.multi.deliveryAddress.addressBook = 주소록 +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = 또는 원래 주소 유지: +checkout.multi.deliveryAddress.breadcrumb = 배송/픽업 장소 +checkout.multi.deliveryAddress.continue = 다음 +checkout.multi.deliveryAddress.edit = 편집 +checkout.multi.deliveryAddress.editAddress = 주소 편집 +checkout.multi.deliveryAddress.noExistingAddresses = 주소록에 주소가 없습니다. +checkout.multi.deliveryAddress.noSuggestedAddresses = 주소 제안 없음 +checkout.multi.deliveryAddress.remove = 제거 +checkout.multi.deliveryAddress.select = 선택 +checkout.multi.deliveryAddress.selectAddressMessage = 배송을 위해 기존 주소를 선택합니다. +checkout.multi.deliveryAddress.selectSuggestedAddress = 주소를 확인하십시오.
주소에 대한 다음 변경 사항 중 하나를 수락하는 것이 좋습니다: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = 그대로 제출 +checkout.multi.deliveryAddress.stepHeader = 1 - 배송지 주소 선택 +checkout.multi.deliveryAddress.stepHeader.done = 1 - 배송지 주소 +checkout.multi.deliveryAddress.useThisAddress = 이 주소 사용 +checkout.multi.deliveryMethod = 배송 방법 +checkout.multi.deliveryMethod.breadcrumb = 배송 방법 +checkout.multi.deliveryMethod.continue = 다음 +checkout.multi.deliveryMethod.deliveryOptions = 배송 옵션 +checkout.multi.deliveryMethod.edit = 편집 +checkout.multi.deliveryMethod.header = 배송 옵션 +checkout.multi.deliveryMethod.noExistingDeliveryMethod = 현재 배송 방법이 없습니다. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = 배송 방법 +checkout.multi.deliveryMethod.stepHeader = 2 - 배송 방법 선택 +checkout.multi.deliveryMethod.stepHeader.done = 2 - 배송 방법 +checkout.multi.deliveryMethod.useThisDeliveryMethod = 선택한 배송 방법 사용 +checkout.multi.hostedOrderPageError.ERROR.150 = 일반 시스템 오류입니다. 가능한 조치: 잠시 기다린 후 주문을 재전송하십시오. +checkout.multi.hostedOrderPageError.ERROR.151 = 요청을 받았지만 서버 시간이 초과하였습니다. 가능한 조치: 주문이 중복되지 않도록 영업 팀에서 연락할 때까지 요청을 재전송하지 마십시오. +checkout.multi.hostedOrderPageError.ERROR.152 = 요청을 받았지만 서비스의 실행이 시간 내에 완료되지 않았습니다. 가능한 조치: 주문이 중복되지 않도록 영업 팀에서 연락할 때까지 요청을 재전송하지 마십시오. +checkout.multi.hostedOrderPageError.breadcrumb = 오류 +checkout.multi.hostedOrderPageError.continue = 계속 +checkout.multi.hostedOrderPageError.globalError = 구독을 만들지 못했습니다. 아래의 오류 세부 사항을 참조하십시오. +checkout.multi.hostedOrderPageError.header = 오류 세부 사항 +checkout.multi.hostedOrderPostPage.button.submit = 제출 +checkout.multi.hostedOrderPostPage.header.debug = 이 페이지에는 HOP URL로 전송되는 모든 호스팅된 주문 페이지 (HOP) API 필드가 표시되며, 원하는 동작을 시뮬레이션하는 값을 변경하여 HOP를 디버그하는 데 사용할 수 있습니다. +checkout.multi.hostedOrderPostPage.header.wait = 여러분의 데이터를 전송하는 동안 기다려 주십시오 +checkout.multi.items.to.pickup = 픽업: +checkout.multi.next = 다음 » +checkout.multi.order.summary = 주문 요약 +checkout.multi.payment = 지불: +checkout.multi.paymentMethod = 지불 및 대금 청구 주소 +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = 대금 청구 주소 +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 대금 청구 주소가 배송지 주소와 다른 경우 이 양식을 사용하여 대금 청구 주소를 입력하십시오 +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 다른 대금 청구 주소 입력 +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = 지불을 위해 카드 세부 사항을 입력하십시오 +checkout.multi.paymentMethod.addPaymentDetails.generalError = 지불 공급자에게 연락하는 동안 오류가 발생했습니다. 잠시 기다린 후 다시 시도하십시오. 문제가 지속되면 영업 팀에 연락하십시오. +checkout.multi.paymentMethod.addPaymentDetails.header = 지불 세부 사항 +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = 카드 세부 사항 +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 내 계정에 이 지불 세부 사항 저장 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = 저장된 카드 사용 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = 등록된 고객은 이전에 저장한 카드를 선택할 수 있음 +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = 이 지불 세부 사항 사용 +checkout.multi.paymentMethod.breadcrumb = 지불 및 대금 청구 주소 +checkout.multi.paymentMethod.continue = 다음 +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = 대금 청구 주소를 입력하거나 대금 청구 주소로 사용할 수 있도록 먼저 배송지 주소를 입력하십시오. +checkout.multi.paymentMethod.createSubscription.failedMsg = 구독을 만들지 못했습니다. 입력한 값을 확인하십시오. +checkout.multi.paymentMethod.edit = 편집 +checkout.multi.paymentMethod.paymentDetails.expires = {0}/{1} 만료 +checkout.multi.paymentMethod.paymentDetails.noneSelected = 선택한 항목이 없음 +checkout.multi.paymentMethod.savedCards.actions = 작업 +checkout.multi.paymentMethod.savedCards.billingAddress = 대금 청구 주소 +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = 새 지불 세부 사항 입력 +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = 저장한 카드가 없습니다 +checkout.multi.paymentMethod.savedCards.paymentCard = 지불 카드 +checkout.multi.paymentMethod.savedCards.select = 선택 +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = 기존 지불 세부 사항 선택 또는 새 지불 세부 사항 입력 +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - 지불 세부 사항 선택 +checkout.multi.paymentMethod.viewSavedPayments = 저장된 지불 보기 +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = 자세한 내용은 주문 요약 영역을 참조하십시오. +checkout.multi.pickup.items = #{0} - {1}건 픽업 +checkout.multi.pickupInStore = 매장 내 픽업 +checkout.multi.pickupInStore.confirm.and.continue = 간단히 아래의 정보를 확인하고 계속해서 다음 체크아웃 단계를 수행합니다. +checkout.multi.saveAddress = 주소 저장 +checkout.multi.secure.checkout = 보안 체크아웃 +checkout.multi.shipment.items = 배송 - {0}건 +checkout.multi.shipment.pickup.location = 배송/픽업 장소 +checkout.multi.sop.globalError = 요청을 처리하는 동안 오류가 발생했습니다. 가능한 조치: 잠시 기다린 후 주문을 재전송하십시오. +checkout.multi.sop.remove = 제거 +checkout.multi.sop.savePaymentInfo = 지불 정보 저장 +checkout.multi.sop.useMyDeliveryAddress = 내 배송지 주소 사용 +checkout.multi.sop.useThisPaymentInfo = 이 지불 정보 사용 +checkout.multi.summary.breadcrumb = 최종 검토 +checkout.multi.deliveryAddress.notprovided = 다음 단계로 이동하려면 배송지 주소를 제공해야 합니다. +checkout.multi.deliveryMethod.notprovided = 다음 단계로 이동하려면 배송 옵션을 제공해야 합니다. +checkout.multi.paymentDetails.notprovided = 다음 단계로 이동하려면 지불 세부 사항을 제공해야 합니다. +checkout.orderConfirmation.copySentTo = 주문 세부 사항의 사본을 {0}(으)로 보냈습니다 +checkout.orderConfirmation.orderNumber = 주문 번호는 {0}입니다 +checkout.orderConfirmation.orderNumberShort = 주문 번호 {0} +checkout.orderConfirmation.orderStatus = 주문 상태: {0} +checkout.orderConfirmation.pickupItems = {0} 매장 내 픽업 품목 +checkout.orderConfirmation.pickupPoints = {0} 매장 팍업 대상 +checkout.orderConfirmation.checkoutSuccessful = 체크아웃 성공 +checkout.orderConfirmation.success = 주문이 완료되었습니다! +checkout.orderConfirmation.summary = 주문에 대한 요약은 다음과 같습니다: +checkout.orderConfirmation.thankYou = 주문해 주셔서 감사합니다. 주문 번호는 {0}입니다 +checkout.orderConfirmation.thankYouForOrder = 주문이 완료되었습니다. 쇼핑해 주셔서 감사합니다. +checkout.orderConfirmation.yourItems = 품목 +checkout.orderConfirmation.continueShopping = 쇼핑 계속 +checkout.orderDetails.hide = [-] 주문 세부 사항 숨기기 +checkout.orderDetails.show = [+] 주문 세부 사항 표시 +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = 대금 청구 주소를 입력하거나 대금 청구 주소로 사용할 수 있도록 먼저 배송지 주소를 입력하십시오. +checkout.paymentMethod.createSubscription.failed = 구독을 만들지 못했습니다. 입력한 값을 확인하십시오. +checkout.paymentMethod.noSecurityCode = 보안 코드를 제공하십시오. +checkout.paymentMethod.notSelected = 주문에 대한 지불 세부 사항을 제공하십시오 +checkout.pickup.confirm.and.continue = 간단히 아래의 정보를 확인하고 계속해서 다음 체크아웃 단계를 수행합니다. +checkout.pickup.continue.button = 계속 +checkout.pickup.estimated.total = 예상 합계: +checkout.pickup.items.appear.later = 주문 품목은 체크아웃할 때 나중에 표시됩니다 +checkout.pickup.items.at.one.location = 현재 주문에서 픽업하도록 선택한 모든 품목을 다음 매장에서 픽업할 수 있습니다: +checkout.pickup.items.available.at.one.location = 픽업 품목을 하나의 매장에서 픽업할 수 있습니다(배달 주문에 영향을 미치지 않음) +checkout.pickup.items.simplify.pickup.location = 동일한 매장에서 모든 품목을 픽업하도록 내 주문을 변경하겠습니다 +checkout.pickup.items.to.be.delivered = 배송할 품목 +checkout.pickup.items.to.be.shipped = 배송지: +checkout.pickup.items.to.pickup = 픽업할 품목 {0}개 +checkout.pickup.no.delivery.required = 이 주문에 필요한 배송 없음 +checkout.pickup.pickup.in.store = 매장 내 픽업 - {0}, {1} +checkout.pickup.pickup.in.store.title = 매장 내 픽업 +checkout.pickup.simplifyPickup = 픽업 위치 단순화 +checkout.pickup.store.destinations = {0} 매장 픽업 대상 +checkout.placeOrder.failed = 주문하지 못했습니다 +checkout.security.code = 보안 코드 +checkout.summary.edit = 편집 +checkout.summary.deliveryAddress = 배달 주소 +checkout.summary.deliveryAddress.edit = 편집 +checkout.summary.deliveryAddress.editDeliveryAddressButton = 배송지 주소 편집 +checkout.summary.deliveryAddress.enterDeliveryAddressButton = 배송지 주소 편집 +checkout.summary.deliveryAddress.header = 배달 주소 +checkout.summary.deliveryAddress.noExistingAddresses = 주소록에 주소가 없습니다. +checkout.summary.deliveryAddress.noneSelected = 선택한 항목이 없음 +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = 배송 주소 저장 +checkout.summary.deliveryAddress.saveAndUseThisAddress = 이 주소 저장 및 사용 +checkout.summary.deliveryAddress.selectExistingAddress = 기존 주소 선택 +checkout.summary.deliveryAddress.useForNewAddress = 이 양식을 사용하여 새 주소를 입력하십시오 +checkout.summary.deliveryAddress.useThisAddress = 이 주소 사용 +checkout.summary.deliveryMode.editDeliveryMethod = 배송 방법 편집 +checkout.summary.deliveryMode.header = 배송 옵션 +checkout.summary.deliveryMode.items.for.pickup = 매장 내 픽업 품목 {0} +checkout.summary.deliveryMode.noneSelected = 선택한 항목이 없음 +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} 매장 픽업 대상 +checkout.summary.deliveryMode.selectDeliveryMethod = 배송 방법 선택 +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = 배송 방법 +checkout.summary.deliveryMode.useThisDeliveryMethod = 이 배송 방법 사용 +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = 대금 청구 주소 +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 대금 청구 주소가 배송지 주소와 다른 경우 이 양식을 사용하여 대금 청구 주소를 입력하십시오 +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 다른 대금 청구 주소 입력 +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = 지불을 위해 카드 세부 사항을 입력하십시오 +checkout.summary.paymentMethod.addPaymentDetails.header = 지불 세부 사항 +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = 지불 카드 +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = 이 지불 세부 사항 저장 및 사용 +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 내 계정에 이 지불 세부 사항 저장 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = 저장된 카드 사용 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = 등록된 고객은 이전에 저장한 카드를 선택할 수 있음 +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = 이 지불 세부 사항 사용 +checkout.summary.paymentMethod.billingAddress.header = 대금 청구 주소: +checkout.summary.paymentMethod.editPaymentMethod = 지불 방법 편집 +checkout.summary.paymentMethod.header = 지불 세부 사항 +checkout.summary.paymentMethod.paymentDetails.expires = {0}/{1} 만료 +checkout.summary.paymentMethod.paymentDetails.noneSelected = 선택한 항목이 없음 +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = 이 지불 세부 사항 사용 +checkout.summary.paymentMethod.savedCards.actions = 작업 +checkout.summary.paymentMethod.savedCards.billingAddress = 대금 청구 주소 +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = 새 지불 세부 사항 입력 +checkout.summary.paymentMethod.savedCards.header = 지불 세부 사항 선택 +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = 저장한 카드가 없습니다 +checkout.summary.paymentMethod.savedCards.paymentCard = 지불 카드 +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = 기존 지불 세부 사항 선택 또는 새 지불 세부 사항 입력 +checkout.summary.paymentMethod.securityCode = 보안 코드 +checkout.summary.paymentMethod.securityCode.whatIsThis = (무엇입니까?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = 카드의 뒷면에 있는 서명 스트립의 마지막 3자리 숫자입니다. American Express의 경우에는 카드의 앞면에 있는 홀로그램 바로 위에 있는 4자리 숫자입니다. +checkout.summary.placeOrder = 주문 +checkout.summary.placeOrder.readTermsAndConditions = 이 주문을 함으로써 약관을 읽고 동의하였음을 확인합니다 +checkout.summary.placeOrder.readTermsAndConditions.close = 닫기 +checkout.summary.reviewYourOrder = 최종 검토 +checkout.summary.reviewYourOrderMessage = 주문을 신중하게 검토하십시오! +checkout.summary.select.payment.method = 지불 방법 선택 +checkout.summary.shippingAddress = 배송지 주소 + +checkout.express.error.notAvailable = 빠른 체크아웃이 비활성화되어 있어 사용할 수 없습니다. +checkout.express.error.deliveryAddress = 기본 배송지 주소가 없어 빠른 체크아웃을 사용할 수 없습니다. 다음에 빠른 체크아웃을 사용하려면 계정에 기본 배송지 주소를 설정하십시오. +checkout.express.error.deliveryMode = 빠른 체크아웃을 사용할 수 없습니다. 배송 모드를 설정하는 동안 오류가 발생했습니다. +checkout.express.error.paymentInfo = 기본 지불 정보가 없어 빠른 체크아웃을 사용할 수 없습니다. 다음에 빠른 체크아웃을 사용하려면 계정에 기본 지불 정보를 설정하십시오. + + +payment.cardNumber = 카드 번호 +payment.cardNumber.invalid = 유효한 카드 번호를 입력하십시오 +payment.cardType = 카드 종류 +payment.cardType.invalid = 카드 종류를 선택하십시오 +payment.cardType.pleaseSelect = 카드 종류를 선택하십시오 +payment.cvn = CVC 번호 +payment.expiryDate = 만료 날짜* +payment.expiryMonth.invalid = 카드 만료 월을 선택하십시오 +payment.expiryYear.invalid = 카드 만료 연도를 선택하십시오 +payment.issueNumber = 발급 번호 +payment.issueNumber.invalid = 그 필드에는 숫자만 입력할 수 있습니다 +payment.issueNumber.toolong = 입력한 발행 번호가 너무 깁니다. +payment.month = 월 +payment.nameOnCard = 카드 상의 이름 +payment.nameOnCard.invalid = 카드 상의 이름을 입력하십시오 +payment.startDate = 시작 날짜(Maestro / Solo / Switch 전용) +payment.startDate.invalid = 시작 날짜는 만료 날짜보다 이전이라야 합니다 +payment.year = 년 + +paymentMethod.billingAddress.header = 대금 청구 주소: +paymentMethod.header = 지불 세부 사항 + +mobile.checkout.cart.viewFullCart = 전체 장바구니 보기 +mobile.checkout.cart.viewLess = 간단히 보기 +mobile.checkout.confirmOrder = 최종 검토 +mobile.checkout.continue.button = 계속 +mobile.checkout.continue.shopping = 쇼핑 계속 +mobile.checkout.deliveryAddress = 배달 주소 +mobile.checkout.deliveryAddress.selectAddressMessage = 주소록에서 배송지 주소를 선택하거나 새로 추가하십시오 +mobile.checkout.deliveryAddress.use = 사용 +mobile.checkout.deliveryMethod = 배송 옵션 +mobile.checkout.edit.link = 편집 +mobile.checkout.items.hide = 품목 숨기기 +mobile.checkout.items.show = 품목 자세히 표시 +mobile.checkout.paymentMethod = 지불 세부 사항 +mobile.checkout.paymentMethod.add.card = 새 카드 추가 +mobile.checkout.paymentMethod.addOrSelect.card = 전자지갑에서 저장된 지불 카드 선택 또는 새 카드 추가 +mobile.payment.issueNumber = 발행 번호(Maestro / Solo / Switch 전용) +mobile.multi.checkout.selectExistingCard = 기존 지불 세부 사항에서 선택 +mobile.checkout.multi.button.submit = 제출 + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties new file mode 100644 index 000000000..bcde71d65 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_pt.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Forneça um endereço de entrega para seu pedido +checkout.deliveryMethod.notSelected = Selecione um método de entrega para seu pedido +checkout.error.authorization.failed = Desculpe, mas sua transação não pôde ser completada neste momento. Tente novamente mais tarde ou contate o serviço ao cliente em 555-555-5555 +checkout.error.cart.notcalculated = Desculpe, mas sua transação não pôde ser completada neste momento. Tente novamente mais tarde ou contate o serviço ao cliente em 555-555-5555 +checkout.error.payment.not.accepted = Seu pagamento foi negado. Verifique se seus detalhes de pagamento estão corretos. +checkout.error.paymentethod.formentry.invalid = Verifique se os detalhes de seu pagamento estão corretos ou forneça um outro método de pagamento. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = O número do cartão não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = O tipo de cartão não é suportado +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = O código de segurança não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = O mês de validade não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = O ano de validade não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = O número de emissão não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = O mês inicial não é válido +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = O ano inicial não é válido +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Este valor é inválido para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Insira um número de cartão +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Selecione um tipo de carrinho +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Insira um mês de validade +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Insira um ano de validade +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Insira um número de emissão +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Insira um mês inicial +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Insira um ano inicial +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Insira um valor para este campo +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Insira um valor para este campo +checkout.error.tax.missing = Desculpe, mas sua transação não pôde ser completada neste momento. Tente novamente mais tarde ou contate o serviço ao cliente em 555-555-5555 +checkout.error.terms.not.accepted = Aceite nossos Termos e Condições antes de submeter seu pedido. +checkout.information.delivery.method.changed = Seu método de entrega foi atualizado com base em sua localização de entrega. + +checkout.multi.addEditform = Use este formulário para adicionar/editar um endereço. +checkout.multi.address.added = Seu endereço foi criado. +checkout.multi.address.updated = Seu endereço foi atualizado +checkout.multi.addressDetails = Detalhes do endereço +checkout.multi.breadcrumb = Fazer checkout +checkout.multi.cancel = Cancelar +checkout.multi.confirmOrder = Revisão final +checkout.multi.deliveryAddress = Localização do embarque/retirada +checkout.multi.deliveryAddress.addAddress = Adicionar novo endereço +checkout.multi.deliveryAddress.address = Endereço +checkout.multi.deliveryAddress.addressBook = Livro de endereços +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = Ou mantenha seu endereço original: +checkout.multi.deliveryAddress.breadcrumb = Localização do embarque/retirada +checkout.multi.deliveryAddress.continue = Próximo +checkout.multi.deliveryAddress.edit = Editar +checkout.multi.deliveryAddress.editAddress = Editar o endereço +checkout.multi.deliveryAddress.noExistingAddresses = Você não tem nenhum endereço em seu livro de endereços. +checkout.multi.deliveryAddress.noSuggestedAddresses = Nenhuma sugestão de endereço +checkout.multi.deliveryAddress.remove = Remover +checkout.multi.deliveryAddress.select = Selecionar +checkout.multi.deliveryAddress.selectAddressMessage = Selecione um endereço existente para sua entrega. +checkout.multi.deliveryAddress.selectSuggestedAddress = Verifique seu endereço.
Nós sugerimos que você aceite uma das seguintes alterações em seu endereço: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Submeter como está +checkout.multi.deliveryAddress.stepHeader = 1 - Selecionar o endereço de entrega +checkout.multi.deliveryAddress.stepHeader.done = 1 - Endereço de entrega +checkout.multi.deliveryAddress.useThisAddress = Usar este endereço +checkout.multi.deliveryMethod = Método de embarque +checkout.multi.deliveryMethod.breadcrumb = Método de embarque +checkout.multi.deliveryMethod.continue = Próximo +checkout.multi.deliveryMethod.deliveryOptions = Opções e entrega +checkout.multi.deliveryMethod.edit = Editar +checkout.multi.deliveryMethod.header = Opções e entrega +checkout.multi.deliveryMethod.noExistingDeliveryMethod = No momento não existe nenhum método de entrega. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Método de embarque +checkout.multi.deliveryMethod.stepHeader = 2 - Selecionar o método de entrega +checkout.multi.deliveryMethod.stepHeader.done = 2 - Método de entrega +checkout.multi.deliveryMethod.useThisDeliveryMethod = Usar o método de entrega selecionado +checkout.multi.hostedOrderPageError.ERROR.150 = Falha geral do sistema. Ação possível: aguarde alguns minutos e reenvie o pedido. +checkout.multi.hostedOrderPageError.ERROR.151 = A solicitação foi recebida, mas ocorreu uma expiração do servidor. Ação possível: para evitar a duplicidade do pedido, não reenvie a solicitação até ter contatado nossa equipe de vendas. +checkout.multi.hostedOrderPageError.ERROR.152 = A solicitação foi recebida, mas um serviço não terminou em tempo. Ação possível: para evitar a duplicidade do pedido, não reenvie a solicitação até ter contatado nossa equipe de vendas. +checkout.multi.hostedOrderPageError.breadcrumb = Erro +checkout.multi.hostedOrderPageError.continue = Continuar +checkout.multi.hostedOrderPageError.globalError = Falha ao criar a assinatura. Consulte abaixo os detalhes do erro. +checkout.multi.hostedOrderPageError.header = Detalhes do erro +checkout.multi.hostedOrderPostPage.button.submit = Submeter +checkout.multi.hostedOrderPostPage.header.debug = Esta página mostra todos os campos da API Hosted Order Page (HOP) que serão enviados para o URL HOP. Ela pode ser usada para depurar o HOP ao alterar os valores para simular o comportamento desejado. +checkout.multi.hostedOrderPostPage.header.wait = Espere até ser transferido +checkout.multi.items.to.pickup = Retirar: +checkout.multi.next = Avançar » +checkout.multi.order.summary = Resumo do pedido +checkout.multi.payment = Pagamento: +checkout.multi.paymentMethod = Endereço de cobrança e faturamento +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Endereço de faturamento +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Caso seu endereço de faturamento seja diferente de seu endereço de entrega, use este formulário para inserir seu endereço de faturamento +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Insira outro endereço de faturamento +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Insira os detalhes de seu cartão para pagamento +checkout.multi.paymentMethod.addPaymentDetails.generalError = Ocorreu um erro ao contatar o provedor de pagamento. Aguarde alguns minutos e tente novamente. Caso o problema persista, contate nossa equipe de vendas. +checkout.multi.paymentMethod.addPaymentDetails.header = Detalhes do pagamento +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Detalhes do cartão +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Salvar estes detalhes de pagamento em minha conta +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Usar um cartão salvo +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Os clientes registrados podem selecionar um cartão anteriormente salvo +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Usar estes detalhes de pagamento +checkout.multi.paymentMethod.breadcrumb = Endereço de cobrança e faturamento +checkout.multi.paymentMethod.continue = Próximo +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Primeiro insira um endereço de faturamento ou insira um endereço de entrega para que possa ser usado como o endereço de faturamento. +checkout.multi.paymentMethod.createSubscription.failedMsg = Falha ao criar a assinatura. Verifique os valores inseridos. +checkout.multi.paymentMethod.edit = Editar +checkout.multi.paymentMethod.paymentDetails.expires = Expira em {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Nenhum selecionado +checkout.multi.paymentMethod.savedCards.actions = Ações +checkout.multi.paymentMethod.savedCards.billingAddress = Endereço de faturamento +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Insira novos detalhes de pagamento +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = Você não tem nenhum cartão salvo +checkout.multi.paymentMethod.savedCards.paymentCard = Cartão de pagamento +checkout.multi.paymentMethod.savedCards.select = Selecionar +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Selecione os detalhes de pagamento existentes ou insira novos detalhes de pagamento +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Selecionar detalhes do pagamento +checkout.multi.paymentMethod.viewSavedPayments = Exibir os pagamentos salvos +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Consulte a área Resumo do pedido para obter mais informações. +checkout.multi.pickup.items = Retirar nº{0} - {1} Itens +checkout.multi.pickupInStore = Retirar na loja +checkout.multi.pickupInStore.confirm.and.continue = Basta confirmar a informação abaixo e continuar para a próxima etapa do check-out. +checkout.multi.saveAddress = Salvar o endereço +checkout.multi.secure.checkout = Check-out seguro +checkout.multi.shipment.items = Embarque - {0} Itens +checkout.multi.shipment.pickup.location = Localização do embarque/retirada +checkout.multi.sop.globalError = Ocorreu um erro ao processar sua solicitação. Ação possível: aguarde alguns minutos e reenvie o pedido. +checkout.multi.sop.remove = Remover +checkout.multi.sop.savePaymentInfo = Salvar as informações de pagamento +checkout.multi.sop.useMyDeliveryAddress = Usar meu endereço de entrega +checkout.multi.sop.useThisPaymentInfo = Usar estas informações de pagamento +checkout.multi.summary.breadcrumb = Revisão final +checkout.multi.deliveryAddress.notprovided = Você precisa fornecer um endereço de entrega para poder ir para a próxima etapa. +checkout.multi.deliveryMethod.notprovided = Você precisa fornecer uma opção de entrega para poder ir para a próxima etapa. +checkout.multi.paymentDetails.notprovided = Você precisa fornecer detalhes de pagamento para poder ir para a próxima etapa. +checkout.orderConfirmation.copySentTo = Um cópia dos detalhes de seu pedido foi enviada para {0} +checkout.orderConfirmation.orderNumber = Seu número do pedido é {0} +checkout.orderConfirmation.orderNumberShort = Pedido nº {0} +checkout.orderConfirmation.orderStatus = Status do pedido: {0} +checkout.orderConfirmation.pickupItems = {0} Itens para retirada na loja +checkout.orderConfirmation.pickupPoints = {0} Destinos para retirada na loja +checkout.orderConfirmation.checkoutSuccessful = Check-out com êxito +checkout.orderConfirmation.success = Seu pedido obteve êxito! +checkout.orderConfirmation.summary = Abaixo se encontra um resumo de seu pedido: +checkout.orderConfirmation.thankYou = Obrigado por seu pedido. O número de seu pedido é {0} +checkout.orderConfirmation.thankYouForOrder = Seu pedido obteve êxito! Obrigado por comprar conosco. +checkout.orderConfirmation.yourItems = Seus itens +checkout.orderConfirmation.continueShopping = Continuar a comprar +checkout.orderDetails.hide = [-] Ocultar detalhes do pedido +checkout.orderDetails.show = [+] Exibir detalhes do pedido +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Primeiro insira um endereço de faturamento ou insira um endereço de entrega para que possa ser usado como o endereço de faturamento. +checkout.paymentMethod.createSubscription.failed = Falha ao criar a assinatura. Verifique os valores inseridos. +checkout.paymentMethod.noSecurityCode = Forneça o código de segurança. +checkout.paymentMethod.notSelected = Forneça os detalhes de seu pagamento para seu pedido +checkout.pickup.confirm.and.continue = Basta confirmar a informação abaixo e continuar para a próxima etapa do check-out. +checkout.pickup.continue.button = Continuar +checkout.pickup.estimated.total = Total estimado: +checkout.pickup.items.appear.later = Os itens do pedido a serem retirados irão aparecer mais tarde no check-out +checkout.pickup.items.at.one.location = Todos os itens de seu pedido que forma selecionados para retirada estão no momento disponíveis nestas localizações de lojas: +checkout.pickup.items.available.at.one.location = SEUS ITENS PARA RETIRADA ESTÃO DISPONÍVEIS EM UMA LOCALIZAÇÃO (não afeta os pedidos de entrega) +checkout.pickup.items.simplify.pickup.location = Gostaria de alterar meu pedido para retirar todos os meus itens na mesma loja +checkout.pickup.items.to.be.delivered = Itens a serem entregues +checkout.pickup.items.to.be.shipped = Embarcar para: +checkout.pickup.items.to.pickup = {0} itens a serem retirados +checkout.pickup.no.delivery.required = Nenhuma entrega requerida para este pedido +checkout.pickup.pickup.in.store = Retirar na loja - {0}, {1} +checkout.pickup.pickup.in.store.title = RETIRAR NA LOJA +checkout.pickup.simplifyPickup = Simplificar a localização de retirada +checkout.pickup.store.destinations = {0} destinos para retirada na loja +checkout.placeOrder.failed = Falha em colocar o pedido +checkout.security.code = Código de segurança +checkout.summary.edit = Editar +checkout.summary.deliveryAddress = Endereço de entrega +checkout.summary.deliveryAddress.edit = Editar +checkout.summary.deliveryAddress.editDeliveryAddressButton = Editar o endereço de entrega +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Editar o endereço de entrega +checkout.summary.deliveryAddress.header = Endereço de entrega +checkout.summary.deliveryAddress.noExistingAddresses = Você não tem nenhum endereço em seu livro de endereços. +checkout.summary.deliveryAddress.noneSelected = Nenhum selecionado +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Salvar o endereço de entrega +checkout.summary.deliveryAddress.saveAndUseThisAddress = Salvar e usar este endereço +checkout.summary.deliveryAddress.selectExistingAddress = Selecionar um endereço existente +checkout.summary.deliveryAddress.useForNewAddress = Use este formulário para inserir um novo endereço +checkout.summary.deliveryAddress.useThisAddress = Usar este endereço +checkout.summary.deliveryMode.editDeliveryMethod = Editar o método de entrega +checkout.summary.deliveryMode.header = Opções e entrega +checkout.summary.deliveryMode.items.for.pickup = {0} Itens para a retirada na loja +checkout.summary.deliveryMode.noneSelected = Nenhum selecionado +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} Destinos para a retirada na loja +checkout.summary.deliveryMode.selectDeliveryMethod = Selecionar o método de entrega +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Método de embarque +checkout.summary.deliveryMode.useThisDeliveryMethod = Usar este método de entrega +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Endereço de faturamento +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Caso seu endereço de faturamento seja diferente de seu endereço de entrega, use este formulário para inserir seu endereço de faturamento +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Insira outro endereço de faturamento +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Insira os detalhes de seu cartão para pagamento +checkout.summary.paymentMethod.addPaymentDetails.header = Detalhes do pagamento +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Cartão de pagamento +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Salvar e usar estes detalhes de pagamento +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Salvar estes detalhes de pagamento em minha conta +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Usar um cartão salvo +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Os clientes registrados podem selecionar um cartão anteriormente salvo +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Usar estes detalhes de pagamento +checkout.summary.paymentMethod.billingAddress.header = Endereço de faturamento: +checkout.summary.paymentMethod.editPaymentMethod = Editar o método de pagamento +checkout.summary.paymentMethod.header = Detalhes do pagamento +checkout.summary.paymentMethod.paymentDetails.expires = Expira em {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Nenhum selecionado +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Usar estes detalhes de pagamento +checkout.summary.paymentMethod.savedCards.actions = Ações +checkout.summary.paymentMethod.savedCards.billingAddress = Endereço de faturamento +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Insira novos detalhes de pagamento +checkout.summary.paymentMethod.savedCards.header = Selecionar detalhes de pagamento +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = Você não tem nenhum cartão salvo +checkout.summary.paymentMethod.savedCards.paymentCard = Cartão de pagamento +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Selecione os detalhes de pagamento existentes ou insira novos detalhes de pagamento +checkout.summary.paymentMethod.securityCode = Código de segurança +checkout.summary.paymentMethod.securityCode.whatIsThis = (O que é isso?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Os último três dígitos na faixa de assinatura na traseira do cartão. Para o American Express, são os 4 dígitos logo acima do holograma na frente do cartão. +checkout.summary.placeOrder = Colocar pedido +checkout.summary.placeOrder.readTermsAndConditions = Ao colocar o pedido, estou confirmando que li e concordei com os Termos e Condições +checkout.summary.placeOrder.readTermsAndConditions.close = Fechar +checkout.summary.reviewYourOrder = Revisão final +checkout.summary.reviewYourOrderMessage = Reveja com cuidado seu pedido! +checkout.summary.select.payment.method = Selecionar método de pagamento +checkout.summary.shippingAddress = Endereço de embarque + +checkout.express.error.notAvailable = O check-out expresso não está disponível já que ele está desativado. +checkout.express.error.deliveryAddress = O check-out expresso não está disponível já que você não tem um endereço de entrega padrão. Selecione um endereço de entrega padrão em sua conta para usar o check-out expresso da próxima vez. +checkout.express.error.deliveryMode = O check-out expresso não está disponível. Ocorreu um erro ao configurar o modo de entrega. +checkout.express.error.paymentInfo = O check-out expresso não está disponível já que vo9cê não tem informações de pagamento padrão. Defina as informações de pagamento padrão em sua conta para usar no check-out expresso na próxima vez. + + +payment.cardNumber = Número do cartão +payment.cardNumber.invalid = Insira um número válido de cartão +payment.cardType = Tipo de cartão +payment.cardType.invalid = Selecione um tipo de cartão +payment.cardType.pleaseSelect = Selecione um tipo de cartão +payment.cvn = Número de verificação do cartão +payment.expiryDate = Data de validade* +payment.expiryMonth.invalid = Selecione o mês de validade do cartão +payment.expiryYear.invalid = Selecione o ano de validade do cartão +payment.issueNumber = Número da emissão +payment.issueNumber.invalid = Somente números são permitidos para aquele campo +payment.issueNumber.toolong = O número da emissão é muito longo. +payment.month = Mês +payment.nameOnCard = Nomear um cartão +payment.nameOnCard.invalid = Insira um nome no cartão +payment.startDate = Data inicial (apenas Maestro/Solo/Switch) +payment.startDate.invalid = A data inicial deve ser anterior a data de expiração +payment.year = Ano + +paymentMethod.billingAddress.header = Endereço de faturamento: +paymentMethod.header = Detalhes do pagamento + +mobile.checkout.cart.viewFullCart = Visualizar o carrinho completo +mobile.checkout.cart.viewLess = Visualizar menos +mobile.checkout.confirmOrder = Revisão final +mobile.checkout.continue.button = Continuar +mobile.checkout.continue.shopping = Continuar a comprar +mobile.checkout.deliveryAddress = Endereço de entrega +mobile.checkout.deliveryAddress.selectAddressMessage = Escolha em endereço de entrega em seu livro de endereços ou adicione um novo +mobile.checkout.deliveryAddress.use = Usar +mobile.checkout.deliveryMethod = Opções e entrega +mobile.checkout.edit.link = Editar +mobile.checkout.items.hide = Ocultar itens +mobile.checkout.items.show = Exibir mais itens +mobile.checkout.paymentMethod = Detalhes do pagamento +mobile.checkout.paymentMethod.add.card = Adicionar novo cartão +mobile.checkout.paymentMethod.addOrSelect.card = Selecione um cartão de pagamento salvo de sua carteira ou adicione um novo cartão| +mobile.payment.issueNumber = Número de emissão (apenas Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = Escolha entre os detalhes de pagamento existentes +mobile.checkout.multi.button.submit = Submeter + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ru.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ru.properties new file mode 100644 index 000000000..3b7d336d3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_ru.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = Укажите адрес доставки по вашему заказу +checkout.deliveryMethod.notSelected = Укажите метод доставки по вашему заказу +checkout.error.authorization.failed = Нам очень жаль, но ваша транзакция не была выполнена; попробуйте еще раз позже или свяжитесь с клиентской службой по номеру 555-555-5555 +checkout.error.cart.notcalculated = Нам очень жаль, но ваша транзакция не была выполнена; попробуйте еще раз позже или свяжитесь с клиентской службой по номеру 555-555-5555 +checkout.error.payment.not.accepted = Ваш платеж отклонен. Проверьте правильность введенных сведений о платеже. +checkout.error.paymentethod.formentry.invalid = Проверьте правильность введенных сведений о платеже или укажите другой метод оплаты. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = Номер карты недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = Такой тип карт не поддерживается +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = Код защиты недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = Месяц окончания срока действия карты недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = Год окончания срока действия карты недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = Номер выпуска недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = Месяц начала недействителен +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = Год начала недействителен +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = Это значение недопустимо для этого поля +checkout.error.paymentethod.formentry.sop.missing.billTo_city = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_country = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_email = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_state = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = Введите номер карты +checkout.error.paymentethod.formentry.sop.missing.card_cardType = Выберите тип карты +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = Введите месяц окончания срока действия карты +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = Введите год окончания срока действия карты +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = Введите номер выпуска +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = Введите месяц начала +checkout.error.paymentethod.formentry.sop.missing.card_startYear = Введите год начала +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = Введите значение в это поле +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = Введите значение в это поле +checkout.error.tax.missing = Нам очень жаль, но ваша транзакция не была выполнена; попробуйте еще раз позже или свяжитесь с клиентской службой по номеру 555-555-5555 +checkout.error.terms.not.accepted = Перед подачей заказа вам нужно принять наши условия. +checkout.information.delivery.method.changed = Ваш метод доставки был обновлен в соответствии с вашим местом доставки. + +checkout.multi.addEditform = Используйте настоящую форму для добавления / редактирования адреса. +checkout.multi.address.added = Ваш адрес создан. +checkout.multi.address.updated = Ваш адрес обновлен +checkout.multi.addressDetails = Адресные данные +checkout.multi.breadcrumb = Оплата +checkout.multi.cancel = Отмена +checkout.multi.confirmOrder = Окончательный просмотр +checkout.multi.deliveryAddress = Местоположение поставки/самовывоза +checkout.multi.deliveryAddress.addAddress = Добавить новый адрес +checkout.multi.deliveryAddress.address = Адрес +checkout.multi.deliveryAddress.addressBook = Адресная книга +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = или сохранить исходный адрес: +checkout.multi.deliveryAddress.breadcrumb = Местоположение поставки/самовывоза +checkout.multi.deliveryAddress.continue = Далее +checkout.multi.deliveryAddress.edit = Редактировать +checkout.multi.deliveryAddress.editAddress = Редактировать адрес +checkout.multi.deliveryAddress.noExistingAddresses = В вашей адресной книге нет адресов. +checkout.multi.deliveryAddress.noSuggestedAddresses = Нет предложений по адресам +checkout.multi.deliveryAddress.remove = Удалить +checkout.multi.deliveryAddress.select = Выбрать +checkout.multi.deliveryAddress.selectAddressMessage = Выберите уже существующий адрес для вашей доставки. +checkout.multi.deliveryAddress.selectSuggestedAddress = Проверьте ваш адрес.
Мы предлагаем вам принять одно из следующих изменений в вашем адресе: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = Подавать как есть +checkout.multi.deliveryAddress.stepHeader = 1 - Выберите адрес доставки +checkout.multi.deliveryAddress.stepHeader.done = 1 - Адрес доставки +checkout.multi.deliveryAddress.useThisAddress = Использовать данный адрес +checkout.multi.deliveryMethod = Метод доставки +checkout.multi.deliveryMethod.breadcrumb = Метод доставки +checkout.multi.deliveryMethod.continue = Далее +checkout.multi.deliveryMethod.deliveryOptions = Опции доставки +checkout.multi.deliveryMethod.edit = Редактировать +checkout.multi.deliveryMethod.header = Опции доставки +checkout.multi.deliveryMethod.noExistingDeliveryMethod = На настоящий момент не заданы никакие методы доставки. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = Метод поставки +checkout.multi.deliveryMethod.stepHeader = 2 - Выбрать метод доставки +checkout.multi.deliveryMethod.stepHeader.done = 2 - Метод доставки +checkout.multi.deliveryMethod.useThisDeliveryMethod = Использовать выбранный метод доставки +checkout.multi.hostedOrderPageError.ERROR.150 = Общий сбой системы. Возможные действия: подождать несколько минут и выслать заказ повторно. +checkout.multi.hostedOrderPageError.ERROR.151 = Запрос получен, но произошел таймаут сервера. Возможные действия: чтобы не повторять заказ, не высылайте запрос заново, пока не свяжетесь с нашим отделом сбыта. +checkout.multi.hostedOrderPageError.ERROR.152 = Запрос получен, но услуга не завершила работу вовремя. Возможные действия: чтобы не повторять заказ, не высылайте запрос заново, пока не свяжетесь с нашим отделом сбыта. +checkout.multi.hostedOrderPageError.breadcrumb = Ошибка +checkout.multi.hostedOrderPageError.continue = Продолжить +checkout.multi.hostedOrderPageError.globalError = Ошибка создания подписки. См. данные ошибки ниже. +checkout.multi.hostedOrderPageError.header = Данные ошибки +checkout.multi.hostedOrderPostPage.button.submit = Отправить +checkout.multi.hostedOrderPostPage.header.debug = На этой странице отображены все поля формы заказа, размещаемой на сервере (HOP), которые будут переданы на HOP URL. Ей можно воспользоваться для отладки формы заказа, размещаемой на сервере, изменив отдельные значения с целью симуляции желаемого поведения. +checkout.multi.hostedOrderPostPage.header.wait = Подождите, сейчас мы перенаправим вас +checkout.multi.items.to.pickup = Самовывоз: +checkout.multi.next = Следующий » +checkout.multi.order.summary = Сводка заказа +checkout.multi.payment = Оплата: +checkout.multi.paymentMethod = Адрес платежа и выставления счета +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = Адрес выставления счетов +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Если ваш адрес выставления счетов отличается от вашего адреса доставки, воспользуйтесь этой формой, чтобы ввести ваш адрес выставления счетов +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Введите другой адрес выставления счетов +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = Введите данные вашей карты для оплаты +checkout.multi.paymentMethod.addPaymentDetails.generalError = Ошибка при соединении с источником платежа. Подождите несколько минут и попробуйте снова. Если проблема не исчезнет, свяжитесь с нашим отделом сбыта. +checkout.multi.paymentMethod.addPaymentDetails.header = Сведения платежа +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = Данные карты +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Сохранить эти платежные данные в моей учетной записи +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = Использовать сохраненную карту +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = Зарегистрированные клиенты могут выбрать ранее сохраненную карту +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = Использовать эти платежные данные +checkout.multi.paymentMethod.breadcrumb = Адрес платежа и выставления счета +checkout.multi.paymentMethod.continue = Далее +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = Введите адрес выставления счетов или сначала введите адрес доставки, чтобы использовать его в качестве адреса выставления счетов. +checkout.multi.paymentMethod.createSubscription.failedMsg = Ошибка создания подписки. Проверьте введенные значения. +checkout.multi.paymentMethod.edit = Редактировать +checkout.multi.paymentMethod.paymentDetails.expires = Истекает {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = Ничего не выбрано +checkout.multi.paymentMethod.savedCards.actions = Действия +checkout.multi.paymentMethod.savedCards.billingAddress = Адрес выставления счетов +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = Введите новые сведения платежа +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = У вас нет сохраненных карт +checkout.multi.paymentMethod.savedCards.paymentCard = Платежная карта +checkout.multi.paymentMethod.savedCards.select = Выбрать +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = Выберите существующие сведения платежа или введите новые сведения +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - Укажите сведения платежа +checkout.multi.paymentMethod.viewSavedPayments = Просмотр сохраненных платежей +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = Дополнительную информацию см. в сводке заказа. +checkout.multi.pickup.items = Самовывоз #{0} - {1} единиц +checkout.multi.pickupInStore = Самовывоз из магазина +checkout.multi.pickupInStore.confirm.and.continue = Просто подтвердите информацию ниже и перейдите к следующему этапу оплаты. +checkout.multi.saveAddress = Сохранить адрес +checkout.multi.secure.checkout = Безопасная оплата +checkout.multi.shipment.items = Поставка - {0} единиц +checkout.multi.shipment.pickup.location = Местоположение поставки/самовывоза +checkout.multi.sop.globalError = При обработке вашего заказа произошла ошибка. Возможные действия: подождите несколько минут и отправьте заказ снова. +checkout.multi.sop.remove = Удалить +checkout.multi.sop.savePaymentInfo = Сохранить платежную информацию +checkout.multi.sop.useMyDeliveryAddress = Использовать мой адрес доставки +checkout.multi.sop.useThisPaymentInfo = Использовать эту платежную информацию +checkout.multi.summary.breadcrumb = Окончательный просмотр +checkout.multi.deliveryAddress.notprovided = Чтобы перейти к следующему этапу, вам нужно указать адрес доставки. +checkout.multi.deliveryMethod.notprovided = Чтобы перейти к следующему этапу, вам нужно указать вариант доставки. +checkout.multi.paymentDetails.notprovided = Чтобы перейти к следующему этапу, вам нужно указать сведения платежа. +checkout.orderConfirmation.copySentTo = Копия вашего заказа отправлена {0} +checkout.orderConfirmation.orderNumber = Ваш номер заказа — {0} +checkout.orderConfirmation.orderNumberShort = Заказ № {0} +checkout.orderConfirmation.orderStatus = Состояние заказа: {0} +checkout.orderConfirmation.pickupItems = {0} товаров для самовывоза из магазина +checkout.orderConfirmation.pickupPoints = Конечная(ые) точка(и) самовывоза из магазина {0} +checkout.orderConfirmation.checkoutSuccessful = Успешная оплата +checkout.orderConfirmation.success = Ваш заказ успешно завершен! +checkout.orderConfirmation.summary = Ниже приводится сводка по вашему заказу: +checkout.orderConfirmation.thankYou = Спасибо за заказ. Номер вашего заказа — {0} +checkout.orderConfirmation.thankYouForOrder = Ваш заказ успешно завершен. Спасибо за покупки в нашем магазине. +checkout.orderConfirmation.yourItems = Ваши товары +checkout.orderConfirmation.continueShopping = Продолжить поиск покупок +checkout.orderDetails.hide = [-] Скрыть сведения о заказе +checkout.orderDetails.show = [+] Просмотреть сведения о заказе +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = Введите адрес выставления счетов или сначала введите адрес доставки, чтобы использовать его в качестве адреса выставления счетов. +checkout.paymentMethod.createSubscription.failed = Ошибка создания подписки. Проверьте введенные значения. +checkout.paymentMethod.noSecurityCode = Укажите код защиты. +checkout.paymentMethod.notSelected = Укажите сведения по вашему платежу для вашего заказа +checkout.pickup.confirm.and.continue = Просто подтвердите информацию ниже и перейдите к следующему этапу оплаты. +checkout.pickup.continue.button = Продолжить +checkout.pickup.estimated.total = Примерная сумма: +checkout.pickup.items.appear.later = Заказанные товары, которые подлежат самовывозу из магазина, отобразятся на экране оплаты позже +checkout.pickup.items.at.one.location = Все товары по вашему заказу, определенные для самовывоза, в настоящий момент доступны по следующим адресам магазинов: +checkout.pickup.items.available.at.one.location = ВАШИ ТОВАРЫ, ПОДЛЕЖАЩИЕ САМОВЫВОЗУ, ДОСТУПНЫ В ОДНОМ МАГАЗИНЕ (не оказывает влияния на заказы доставки) +checkout.pickup.items.simplify.pickup.location = Я хотел бы изменить свой заказ, чтобы забрать все мои товары в одном магазине +checkout.pickup.items.to.be.delivered = Товары будут доставлены +checkout.pickup.items.to.be.shipped = Доставка по адресу: +checkout.pickup.items.to.pickup = {0} товар(-ов) для самовывоза +checkout.pickup.no.delivery.required = По этому заказу не требуется доставка +checkout.pickup.pickup.in.store = Самовывоз из магазина — {0}, {1} +checkout.pickup.pickup.in.store.title = САМОВЫВОЗ ИЗ МАГАЗИНА +checkout.pickup.simplifyPickup = Упростить место самовывоза +checkout.pickup.store.destinations = {0} магазин(-ов) для самовывоза +checkout.placeOrder.failed = Ошибка размещения заказа +checkout.security.code = Код защиты +checkout.summary.edit = Редактировать +checkout.summary.deliveryAddress = Адрес доставки +checkout.summary.deliveryAddress.edit = Редактировать +checkout.summary.deliveryAddress.editDeliveryAddressButton = Редактировать адрес доставки +checkout.summary.deliveryAddress.enterDeliveryAddressButton = Редактировать адрес доставки +checkout.summary.deliveryAddress.header = Адрес доставки +checkout.summary.deliveryAddress.noExistingAddresses = В вашей адресной книге нет адресов. +checkout.summary.deliveryAddress.noneSelected = Ничего не выбрано +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = Сохранить адрес доставки +checkout.summary.deliveryAddress.saveAndUseThisAddress = Сохранить и использовать этот адрес +checkout.summary.deliveryAddress.selectExistingAddress = Выбрать существующий адрес +checkout.summary.deliveryAddress.useForNewAddress = Воспользуйтесь этой формой для ввода нового адреса +checkout.summary.deliveryAddress.useThisAddress = Используйте этот адрес +checkout.summary.deliveryMode.editDeliveryMethod = Редактировать метод доставки +checkout.summary.deliveryMode.header = Опции доставки +checkout.summary.deliveryMode.items.for.pickup = {0} товаров под самовывоз в магазине +checkout.summary.deliveryMode.noneSelected = Ничего не выбрано +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} магазин(-ов) для самовывоза +checkout.summary.deliveryMode.selectDeliveryMethod = Выбрать метод доставки +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = Метод поставки +checkout.summary.deliveryMode.useThisDeliveryMethod = Использовать этот метод доставки +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = Адрес выставления счетов +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = Если ваш адрес выставления счетов отличается от вашего адреса доставки, воспользуйтесь этой формой, чтобы ввести ваш адрес выставления счетов +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = Введите другой адрес выставления счетов +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = Введите данные вашей карты для оплаты +checkout.summary.paymentMethod.addPaymentDetails.header = Сведения платежа +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = Платежная карта +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = Сохранить и использовать эти сведения платежа +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = Сохранить эти платежные данные в моей учетной записи +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = Использовать сохраненную карту +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = Зарегистрированные клиенты могут выбрать ранее сохраненную карту +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = Использовать эти платежные данные +checkout.summary.paymentMethod.billingAddress.header = Адрес выставления счета: +checkout.summary.paymentMethod.editPaymentMethod = Редактировать метод оплаты +checkout.summary.paymentMethod.header = Сведения платежа +checkout.summary.paymentMethod.paymentDetails.expires = Истекает {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = Ничего не выбрано +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = Использовать эти платежные данные +checkout.summary.paymentMethod.savedCards.actions = Действия +checkout.summary.paymentMethod.savedCards.billingAddress = Адрес выставления счетов +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = Введите новые сведения платежа +checkout.summary.paymentMethod.savedCards.header = Выберите сведения платежа +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = У вас нет сохраненных карт +checkout.summary.paymentMethod.savedCards.paymentCard = Платежная карта +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = Выберите существующие сведения платежа или введите новые сведения +checkout.summary.paymentMethod.securityCode = Код защиты +checkout.summary.paymentMethod.securityCode.whatIsThis = (Что это?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = Последние 3 цифры на строке для подписи на обратной стороне карты. В случае карт American Express — это 4 цифры над голограммой на передней стороне карты. +checkout.summary.placeOrder = Разместить заказ +checkout.summary.placeOrder.readTermsAndConditions = Размещая этот заказ, я подтверждаю, что я прочел Условия Terms & Conditions и согласился с таковыми +checkout.summary.placeOrder.readTermsAndConditions.close = Закрыть +checkout.summary.reviewYourOrder = Окончательный просмотр +checkout.summary.reviewYourOrderMessage = Внимательно просмотрите свой заказ! +checkout.summary.select.payment.method = Выберите метод оплаты +checkout.summary.shippingAddress = Адрес доставки + +checkout.express.error.notAvailable = Быстрая оплата недоступна, т.к. эта функция отключена. +checkout.express.error.deliveryAddress = Быстрая оплата недоступна, т.к. у вас не указан адрес доставки по умолчанию. Укажите адрес доставки по умолчанию в вашей учетной записи для использования функции быстрой оплаты в следующий раз. +checkout.express.error.deliveryMode = Быстрая оплата недоступна. Ошибка при установке метода доставки. +checkout.express.error.paymentInfo = Быстрая доставка недоступна, т.к. у вас не указана платежная информация по умолчанию. Укажите платежную информацию в вашей учетной записи, чтобы использовать функцию быстрой оплаты в следующий раз. + + +payment.cardNumber = Номер карты +payment.cardNumber.invalid = Введите действительный номер карты +payment.cardType = Тип карты +payment.cardType.invalid = Выберите тип карты +payment.cardType.pleaseSelect = Выберите тип карты +payment.cvn = Номер проверки \nкарты +payment.expiryDate = Дата окончания срока действия* +payment.expiryMonth.invalid = Выберите месяц окончания срока действия карты +payment.expiryYear.invalid = Выберите год окончания срока действия карты +payment.issueNumber = Номер выпуска +payment.issueNumber.invalid = В этом поле можно вводить только числа +payment.issueNumber.toolong = Номер выпуска слишком длинный. +payment.month = Месяц +payment.nameOnCard = Имя, указанное на карте +payment.nameOnCard.invalid = Введите имя, указанное на карте +payment.startDate = Дата начала (только для Maestro / Solo / Switch) +payment.startDate.invalid = Дата начала должна предшествовать дате окончания срока действия +payment.year = Год + +paymentMethod.billingAddress.header = Адрес выставления счета: +paymentMethod.header = Сведения платежа + +mobile.checkout.cart.viewFullCart = Просмотр полной корзины +mobile.checkout.cart.viewLess = Меньше элементов для просмотра +mobile.checkout.confirmOrder = Окончательный просмотр +mobile.checkout.continue.button = Продолжить +mobile.checkout.continue.shopping = Продолжить поиск покупок +mobile.checkout.deliveryAddress = Адрес доставки +mobile.checkout.deliveryAddress.selectAddressMessage = Выберите адрес доставки в вашей адресной книге или добавьте новый +mobile.checkout.deliveryAddress.use = Использовать +mobile.checkout.deliveryMethod = Опции доставки +mobile.checkout.edit.link = Редактировать +mobile.checkout.items.hide = Скрыть элементы +mobile.checkout.items.show = Показать больше элементов +mobile.checkout.paymentMethod = Сведения платежа +mobile.checkout.paymentMethod.add.card = Добавить новую карту +mobile.checkout.paymentMethod.addOrSelect.card = Выберите сохраненную платежную карту в вашем кошельке или добавьте новую карту +mobile.payment.issueNumber = Номер выпуска (только для Maestro / Solo / Switch) +mobile.multi.checkout.selectExistingCard = Выбрать из существующих сведений платежа +mobile.checkout.multi.button.submit = Отправить + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh.properties new file mode 100644 index 000000000..4b94de49d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = 请提供订单的送货地址 +checkout.deliveryMethod.notSelected = 请为订单选择送货方式 +checkout.error.authorization.failed = 很抱歉,您的交易暂时无法完成。请稍后重试或致电客服 555-555-5555 +checkout.error.cart.notcalculated = 很抱歉,您的交易暂时无法完成。请稍后重试或致电客服 555-555-5555 +checkout.error.payment.not.accepted = 您的付款遭拒。请检查付款详细信息是否正确. +checkout.error.paymentethod.formentry.invalid = 请检查付款详细信息是否正确,或提供其他的付款方式. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = 卡号无效 +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = 卡类型不受支持 +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = 安全码无效 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = 到期月份无效 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = 到期年份无效 +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = 发卡号无效 +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = 起始月份无效 +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = 起始年份无效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = 此值不适用于该字段 +checkout.error.paymentethod.formentry.sop.missing.billTo_city = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_country = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_email = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_state = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = 请输入卡号 +checkout.error.paymentethod.formentry.sop.missing.card_cardType = 请选择卡类型 +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = 请输入到期月份 +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = 请输入到期年份 +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = 请输入发卡号 +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = 请输入起始月份 +checkout.error.paymentethod.formentry.sop.missing.card_startYear = 请输入起始年份 +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = 请为该字段输入一个值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = 请为该字段输入一个值 +checkout.error.tax.missing = 很抱歉,您的交易暂时无法完成。请稍后重试或致电客服 555-555-5555 +checkout.error.terms.not.accepted = 请接受《条款与条件》方可提交订单. +checkout.information.delivery.method.changed = 您的送货方式已根据送货地点进行了更新. + +checkout.multi.addEditform = 请使用此表单添加/编辑地址. +checkout.multi.address.added = 您的地址已创建. +checkout.multi.address.updated = 您的地址已更新 +checkout.multi.addressDetails = 地址详细信息 +checkout.multi.breadcrumb = 结账 +checkout.multi.cancel = 取消 +checkout.multi.confirmOrder = 最终检查 +checkout.multi.deliveryAddress = 发货/提货地点 +checkout.multi.deliveryAddress.addAddress = 添加新地址 +checkout.multi.deliveryAddress.address = 地址 +checkout.multi.deliveryAddress.addressBook = 地址簿 +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = 或保留原始地址: +checkout.multi.deliveryAddress.breadcrumb = 发货/提货地点 +checkout.multi.deliveryAddress.continue = 下一步 +checkout.multi.deliveryAddress.edit = 编辑 +checkout.multi.deliveryAddress.editAddress = 编辑地址 +checkout.multi.deliveryAddress.noExistingAddresses = 地址簿中尚无地址. +checkout.multi.deliveryAddress.noSuggestedAddresses = 无地址建议 +checkout.multi.deliveryAddress.remove = 移除 +checkout.multi.deliveryAddress.select = 选择 +checkout.multi.deliveryAddress.selectAddressMessage = 请选择您的送货地址。 +checkout.multi.deliveryAddress.selectSuggestedAddress = 验证您的地址。
我们建议您接受以下一项地址更改: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = 原样提交 +checkout.multi.deliveryAddress.stepHeader = 1 - 选择送货地址 +checkout.multi.deliveryAddress.stepHeader.done = 1 - 送货地址 +checkout.multi.deliveryAddress.useThisAddress = 使用此地址 +checkout.multi.deliveryMethod = 发货方式 +checkout.multi.deliveryMethod.breadcrumb = 发货方式 +checkout.multi.deliveryMethod.continue = 下一步 +checkout.multi.deliveryMethod.deliveryOptions = 送货选项 +checkout.multi.deliveryMethod.edit = 编辑 +checkout.multi.deliveryMethod.header = 送货选项 +checkout.multi.deliveryMethod.noExistingDeliveryMethod = 当前不存在送货方式. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = 发货方式 +checkout.multi.deliveryMethod.stepHeader = 2 - 选择送货方式 +checkout.multi.deliveryMethod.stepHeader.done = 2 - 送货方式 +checkout.multi.deliveryMethod.useThisDeliveryMethod = 使用选定的送货方式 +checkout.multi.hostedOrderPageError.ERROR.150 = 出现常规系统故障。可行的操作: 稍候几分钟,然后重新发送订单. +checkout.multi.hostedOrderPageError.ERROR.151 = 请求已收到,但出现服务器超时。可行的操作: 为避免重复提交订单,切勿在联系我们的销售团队前重新发送该请求. +checkout.multi.hostedOrderPageError.ERROR.152 = 请求已收到,但服务未及时完成运行。可行的操作: 为避免重复提交订单,切勿在联系我们的销售团队前重新发送该请求. +checkout.multi.hostedOrderPageError.breadcrumb = 错误 +checkout.multi.hostedOrderPageError.continue = 继续 +checkout.multi.hostedOrderPageError.globalError = 无法创建订阅。请参见下方的错误详情. +checkout.multi.hostedOrderPageError.header = 错误详情 +checkout.multi.hostedOrderPostPage.button.submit = 提交 +checkout.multi.hostedOrderPostPage.header.debug = 该页会显示将要发送至 HOP URL 的托管订单页面 (HOP) 中的全部 API 字段。要调试托管订单页面,可更改值以模拟预期行为. +checkout.multi.hostedOrderPostPage.header.wait = 正在传送,请稍候 +checkout.multi.items.to.pickup = 提货: +checkout.multi.next = 下一步 » +checkout.multi.order.summary = 订单摘要 +checkout.multi.payment = 付款: +checkout.multi.paymentMethod = 付款和账单地址 +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = 账单地址 +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 如果您的账单地址与送货地址不同,请使用此表单输入账单地址 +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 输入不同的账单地址 +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = 请输入付款卡详细信息 +checkout.multi.paymentMethod.addPaymentDetails.generalError = 联系付款提供商时出错。请稍候几分钟,然后重试。如果问题仍存在,请联系我们的销售团队. +checkout.multi.paymentMethod.addPaymentDetails.header = 付款详细信息 +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = 卡详细信息 +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 将这些付款详细信息保存在帐户中 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = 使用已保存的卡 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = 注册客户可以选择之前保存的卡 +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = 使用这些付款详细信息 +checkout.multi.paymentMethod.breadcrumb = 付款和账单地址 +checkout.multi.paymentMethod.continue = 下一步 +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = 请先输入账单地址,或输入送货地址用作账单地址。 +checkout.multi.paymentMethod.createSubscription.failedMsg = 无法创建订阅。请检查输入的值. +checkout.multi.paymentMethod.edit = 编辑 +checkout.multi.paymentMethod.paymentDetails.expires = 到期日期 {0} / {1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = 未选择 +checkout.multi.paymentMethod.savedCards.actions = 操作 +checkout.multi.paymentMethod.savedCards.billingAddress = 账单地址 +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = 输入新的付款详细信息 +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = 您尚未保存过付款卡 +checkout.multi.paymentMethod.savedCards.paymentCard = 付款卡 +checkout.multi.paymentMethod.savedCards.select = 选择 +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = 选择现有的或输入新的付款详细信息 +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - 选择付款详细信息 +checkout.multi.paymentMethod.viewSavedPayments = 查看保存的付款 +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = 有关详细信息,请参见订单摘要区域。 +checkout.multi.pickup.items = 提货编号 {0} - {1} 个商品 +checkout.multi.pickupInStore = 店铺提货 +checkout.multi.pickupInStore.confirm.and.continue = 只需确认如下信息即可继续结账步骤。 +checkout.multi.saveAddress = 保存地址 +checkout.multi.secure.checkout = 安全结账 +checkout.multi.shipment.items = 发货 - {0} 个商品 +checkout.multi.shipment.pickup.location = 发货/提货地点 +checkout.multi.sop.globalError = 处理请求时出错。可行的操作: 稍候几分钟,然后重新发送此订单. +checkout.multi.sop.remove = 移除 +checkout.multi.sop.savePaymentInfo = 保存付款信息 +checkout.multi.sop.useMyDeliveryAddress = 使用我的送货地址 +checkout.multi.sop.useThisPaymentInfo = 使用此付款信息 +checkout.multi.summary.breadcrumb = 最终检查 +checkout.multi.deliveryAddress.notprovided = 您必须提供送货地址才能继续到下一步。 +checkout.multi.deliveryMethod.notprovided = 您必须提供送货选项才能继续到下一步. +checkout.multi.paymentDetails.notprovided = 您必须提供付款详细信息才能继续到下一步. +checkout.orderConfirmation.copySentTo = 您的订单详情副本已发送至 {0} +checkout.orderConfirmation.orderNumber = 您的订单号为 {0} +checkout.orderConfirmation.orderNumberShort = 订单号 {0} +checkout.orderConfirmation.orderStatus = 订单状态: {0} +checkout.orderConfirmation.pickupItems = {0} 个需店铺提货的商品 +checkout.orderConfirmation.pickupPoints = {0} 个店铺提货目的地 +checkout.orderConfirmation.checkoutSuccessful = 结账成功 +checkout.orderConfirmation.success = 订购成功!! +checkout.orderConfirmation.summary = 您的订单摘要如下: +checkout.orderConfirmation.thankYou = 感谢惠顾。您的订单号为 {0} +checkout.orderConfirmation.thankYouForOrder = 订购成功!感谢您的惠顾! +checkout.orderConfirmation.yourItems = 您的商品 +checkout.orderConfirmation.continueShopping = 继续购物 +checkout.orderDetails.hide = [-] 隐藏订单详情 +checkout.orderDetails.show = [+] 查看订单详情 +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = 请输入账单地址,或输入送货地址用作账单地址。 +checkout.paymentMethod.createSubscription.failed = 无法创建订阅。请检查输入的值. +checkout.paymentMethod.noSecurityCode = 请提供安全码. +checkout.paymentMethod.notSelected = 请提供订单的付款详细信息 +checkout.pickup.confirm.and.continue = 只需确认如下信息即可继续结账步骤。 +checkout.pickup.continue.button = 继续 +checkout.pickup.estimated.total = 估计总值: +checkout.pickup.items.appear.later = 待提货的订单商品稍后将显示在结账中 +checkout.pickup.items.at.one.location = 订单中选定提货的所有商品当前在如下店铺中有货:: +checkout.pickup.items.available.at.one.location = 您的提货商品在一个实体店有货(不影响送货订单) +checkout.pickup.items.simplify.pickup.location = 我想把我的订单改成全部同一个店铺提货 +checkout.pickup.items.to.be.delivered = 待送货商品 +checkout.pickup.items.to.be.shipped = 送货至: +checkout.pickup.items.to.pickup = {0} 个待提货商品 +checkout.pickup.no.delivery.required = 此订单无须送货 +checkout.pickup.pickup.in.store = 店铺提货 - {0}, {1} +checkout.pickup.pickup.in.store.title = 店铺提货 +checkout.pickup.simplifyPickup = 简化提货地点 +checkout.pickup.store.destinations = {0} 店铺提货目的地 +checkout.placeOrder.failed = 下单失败 +checkout.security.code = 安全码 +checkout.summary.edit = 编辑 +checkout.summary.deliveryAddress = 送货地址 +checkout.summary.deliveryAddress.edit = 编辑 +checkout.summary.deliveryAddress.editDeliveryAddressButton = 编辑送货地址 +checkout.summary.deliveryAddress.enterDeliveryAddressButton = 编辑送货地址 +checkout.summary.deliveryAddress.header = 送货地址 +checkout.summary.deliveryAddress.noExistingAddresses = 地址簿中尚无地址. +checkout.summary.deliveryAddress.noneSelected = 未选择 +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = 保存送货地址 +checkout.summary.deliveryAddress.saveAndUseThisAddress = 保存并使用该地址 +checkout.summary.deliveryAddress.selectExistingAddress = 选择现有地址 +checkout.summary.deliveryAddress.useForNewAddress = 请使用此表单输入新地址 +checkout.summary.deliveryAddress.useThisAddress = 使用该地址 +checkout.summary.deliveryMode.editDeliveryMethod = 编辑送货方式 +checkout.summary.deliveryMode.header = 送货选项 +checkout.summary.deliveryMode.items.for.pickup = {0} 个店铺提货商品 +checkout.summary.deliveryMode.noneSelected = 未选择 +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} 个店铺提货目的地 +checkout.summary.deliveryMode.selectDeliveryMethod = 选择送货方式 +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = 发货方式 +checkout.summary.deliveryMode.useThisDeliveryMethod = 使用此送货方式 +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = 账单地址 +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 如果您的账单地址与送货地址不同,请使用此表单输入账单地址 +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 输入不同的账单地址 +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = 请输入付款卡详细信息 +checkout.summary.paymentMethod.addPaymentDetails.header = 付款详细信息 +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = 付款卡 +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = 保存并使用这些付款详细信息 +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 将这些付款详细信息保存在帐户中 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = 使用已保存的卡 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = 注册客户可以选择之前保存的卡 +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = 使用这些付款详细信息 +checkout.summary.paymentMethod.billingAddress.header = 账单地址: +checkout.summary.paymentMethod.editPaymentMethod = 编辑付款方式 +checkout.summary.paymentMethod.header = 付款详细信息 +checkout.summary.paymentMethod.paymentDetails.expires = 到期日期 {0} / {1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = 未选择 +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = 使用这些付款详细信息 +checkout.summary.paymentMethod.savedCards.actions = 操作 +checkout.summary.paymentMethod.savedCards.billingAddress = 账单地址 +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = 输入新的付款详细信息 +checkout.summary.paymentMethod.savedCards.header = 选择付款详细信息 +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = 您尚未保存过付款卡 +checkout.summary.paymentMethod.savedCards.paymentCard = 付款卡 +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = 选择现有的或输入新的付款详细信息 +checkout.summary.paymentMethod.securityCode = 安全码 +checkout.summary.paymentMethod.securityCode.whatIsThis = (这是什么?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = 卡背面签名栏上的最后 3 位数。对于美国运通卡,则是卡正面信用卡号码上方的 4 位数. +checkout.summary.placeOrder = 下订单 +checkout.summary.placeOrder.readTermsAndConditions = 下单即表示,我确认我已阅读并同意条款与条件 +checkout.summary.placeOrder.readTermsAndConditions.close = 关闭 +checkout.summary.reviewYourOrder = 最终检查 +checkout.summary.reviewYourOrderMessage = 请仔细检查您的订单! +checkout.summary.select.payment.method = 选择付款方式 +checkout.summary.shippingAddress = 发货地址 + +checkout.express.error.notAvailable = 快速结账已禁用,暂不可用。 +checkout.express.error.deliveryAddress = 快速结账不可用,原因是您没有默认的送货地址。请在帐户中设置默认的收货地址以便下次使用快速结账。 +checkout.express.error.deliveryMode = 快速结账暂不可用。设置送货模式时出错。 +checkout.express.error.paymentInfo = 快速结账不可用,原因是您没有默认的付款信息。请在帐户中设置默认的付款信息以便下次使用快速结账。 + + +payment.cardNumber = 卡号 +payment.cardNumber.invalid = 请输入有效的卡号 +payment.cardType = 卡类型 +payment.cardType.invalid = 请选择卡类型 +payment.cardType.pleaseSelect = 请选择卡类型 +payment.cvn = 卡校验码 +payment.expiryDate = 到期日期* +payment.expiryMonth.invalid = 请选择该卡的到期月份 +payment.expiryYear.invalid = 请选择该卡的到期年份 +payment.issueNumber = 发卡号 +payment.issueNumber.invalid = 该字段只能填数字 +payment.issueNumber.toolong = 发卡号太长. +payment.month = 月 +payment.nameOnCard = 持卡人姓名 +payment.nameOnCard.invalid = 请输入持卡人姓名 +payment.startDate = 开卡日期(仅针对 Maestro/Solo/Switch) +payment.startDate.invalid = 开卡日期必须早于到期日期 +payment.year = 年 + +paymentMethod.billingAddress.header = 账单地址: +paymentMethod.header = 付款详细信息 + +mobile.checkout.cart.viewFullCart = 查看完整购物车 +mobile.checkout.cart.viewLess = 查看更少 +mobile.checkout.confirmOrder = 最终检查 +mobile.checkout.continue.button = 继续 +mobile.checkout.continue.shopping = 继续购物 +mobile.checkout.deliveryAddress = 送货地址 +mobile.checkout.deliveryAddress.selectAddressMessage = 从地址簿中选择一个送货地址,或添加新的送货地址 +mobile.checkout.deliveryAddress.use = 使用 +mobile.checkout.deliveryMethod = 送货选项 +mobile.checkout.edit.link = 编辑 +mobile.checkout.items.hide = 隐藏商品 +mobile.checkout.items.show = 显示更多商品 +mobile.checkout.paymentMethod = 付款详细信息 +mobile.checkout.paymentMethod.add.card = 添加新卡 +mobile.checkout.paymentMethod.addOrSelect.card = 从钱包中选择保存的付款卡或添加新卡 +mobile.payment.issueNumber = 发卡号(仅针对 Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = 从现有付款详细信息中选择 +mobile.checkout.multi.button.submit = 提交 + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh_TW.properties b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh_TW.properties new file mode 100644 index 000000000..1133529f6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/messages/base_zh_TW.properties @@ -0,0 +1,304 @@ +# put localizations or messages used in your web application into this file +# +checkout.deliveryAddress.notSelected = 請提供訂單的送貨地址 +checkout.deliveryMethod.notSelected = 請選取訂單的送貨方式 +checkout.error.authorization.failed = 抱歉,您的交易暫時無法完成;請稍後再試一次,或致電 555-555-5555 聯絡客戶服務 +checkout.error.cart.notcalculated = 抱歉,您的交易暫時無法完成;請稍後再試一次,或致電 555-555-5555 聯絡客戶服務 +checkout.error.payment.not.accepted = 您的付款遭拒。請檢查您的付款詳細資料是否正確. +checkout.error.paymentethod.formentry.invalid = 請檢查您的付款詳細資料是否正確,或提供其他付款方式. +checkout.error.paymentethod.formentry.sop.invalid.billTo_city = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_country = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_email = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_firstName = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_lastName = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_phoneNumber = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_postalCode = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_state = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street1 = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.billTo_street2 = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.card_accountNumber = 卡編號無效 +checkout.error.paymentethod.formentry.sop.invalid.card_cardType = 不支援卡類型 +checkout.error.paymentethod.formentry.sop.invalid.card_cvNumber = 安全代碼無效 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationMonth = 到期月份無效 +checkout.error.paymentethod.formentry.sop.invalid.card_expirationYear = 到期年份無效 +checkout.error.paymentethod.formentry.sop.invalid.card_issueNumber = 核發編號無效 +checkout.error.paymentethod.formentry.sop.invalid.card_startMonth = 開始月份無效 +checkout.error.paymentethod.formentry.sop.invalid.card_startYear = 開始年份無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_city = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_country = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_firstName = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_lastName = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_phoneNumber = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_postalCode = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_shippingMethod = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_state = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street1 = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.invalid.shipTo_street2 = 此值對此欄位無效 +checkout.error.paymentethod.formentry.sop.missing.billTo_city = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_country = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_email = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_firstName = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_lastName = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_phoneNumber = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_postalCode = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_titleCode = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_state = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_street1 = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.billTo_street2 = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.card_accountNumber = 請輸入卡編號 +checkout.error.paymentethod.formentry.sop.missing.card_cardType = 請選取卡類型 +checkout.error.paymentethod.formentry.sop.missing.card_cvNumber = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.card_expirationMonth = 請輸入到期月份 +checkout.error.paymentethod.formentry.sop.missing.card_expirationYear = 請輸入到期年份 +checkout.error.paymentethod.formentry.sop.missing.card_issueNumber = 請輸入核發編號 +checkout.error.paymentethod.formentry.sop.missing.card_startMonth = 請輸入開始月份 +checkout.error.paymentethod.formentry.sop.missing.card_startYear = 請輸入開始年份 +checkout.error.paymentethod.formentry.sop.missing.shipTo_city = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_country = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_firstName = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_lastName = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_phoneNumber = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_postalCode = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_shippingMethod = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_state = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street1 = 請為此欄位輸入值 +checkout.error.paymentethod.formentry.sop.missing.shipTo_street2 = 請為此欄位輸入值 +checkout.error.tax.missing = 抱歉,您的交易暫時無法完成;請稍後再試一次,或致電 555-555-5555 聯絡客戶服務 +checkout.error.terms.not.accepted = 請先接受條款與條件,然後提交訂單. +checkout.information.delivery.method.changed = 已根據您的送貨地點更新了送貨方式. + +checkout.multi.addEditform = 請使用此表單新增/編輯地址. +checkout.multi.address.added = 已建立您的地址. +checkout.multi.address.updated = 已更新您的地址 +checkout.multi.addressDetails = 位址詳細資料 +checkout.multi.breadcrumb = 結帳 +checkout.multi.cancel = 取消 +checkout.multi.confirmOrder = 最終檢閱 +checkout.multi.deliveryAddress = 送貨/提貨位置 +checkout.multi.deliveryAddress.addAddress = 新增位址 +checkout.multi.deliveryAddress.address = 位址 +checkout.multi.deliveryAddress.addressBook = 通訊錄 +checkout.multi.deliveryAddress.addressSuggestions.addressNotFound = 或保留原始地址: +checkout.multi.deliveryAddress.breadcrumb = 送貨/提貨位置 +checkout.multi.deliveryAddress.continue = 下一步 +checkout.multi.deliveryAddress.edit = 編輯 +checkout.multi.deliveryAddress.editAddress = 編輯地址 +checkout.multi.deliveryAddress.noExistingAddresses = 您的通訊錄中沒有地址. +checkout.multi.deliveryAddress.noSuggestedAddresses = 無地址建議 +checkout.multi.deliveryAddress.remove = 移除 +checkout.multi.deliveryAddress.select = 選取 +checkout.multi.deliveryAddress.selectAddressMessage = 選取用於送貨的既有地址. +checkout.multi.deliveryAddress.selectSuggestedAddress = 驗證您的地址。
我們建議您接受以下其中一項地址變更: +checkout.multi.deliveryAddress.selectSuggestedAddress.sumbitAsIs = 原樣提交 +checkout.multi.deliveryAddress.stepHeader = 1 - 選取送貨地址 +checkout.multi.deliveryAddress.stepHeader.done = 1 - 送貨地址 +checkout.multi.deliveryAddress.useThisAddress = 使用此地址 +checkout.multi.deliveryMethod = 發貨方式 +checkout.multi.deliveryMethod.breadcrumb = 發貨方式 +checkout.multi.deliveryMethod.continue = 下一步 +checkout.multi.deliveryMethod.deliveryOptions = 送貨選項 +checkout.multi.deliveryMethod.edit = 編輯 +checkout.multi.deliveryMethod.header = 送貨選項 +checkout.multi.deliveryMethod.noExistingDeliveryMethod = 目前不存在送貨方式. +checkout.multi.deliveryMethod.selectDeliveryMethodMessage = 送貨方式 +checkout.multi.deliveryMethod.stepHeader = 2 - 選取送貨方式 +checkout.multi.deliveryMethod.stepHeader.done = 2 - 送貨方式 +checkout.multi.deliveryMethod.useThisDeliveryMethod = 使用選取的送貨方式 +checkout.multi.hostedOrderPageError.ERROR.150 = 發生一般系統故障。可行的動作: 稍後幾分鐘,然後重新傳送訂單. +checkout.multi.hostedOrderPageError.ERROR.151 = 已收到要求,但發生伺服器逾時。可行的動作: 若要避免訂單重複,在聯絡我們的銷售團隊之前,請勿重新傳送要求. +checkout.multi.hostedOrderPageError.ERROR.152 = 已收到要求,但服務的執行並未及時完成。可行的動作: 若要避免訂單重複,在聯絡我們的銷售團隊之前,請勿重新傳送要求. +checkout.multi.hostedOrderPageError.breadcrumb = 錯誤 +checkout.multi.hostedOrderPageError.continue = 繼續 +checkout.multi.hostedOrderPageError.globalError = 無法建立訂閱。請參閱以下錯誤詳細資料. +checkout.multi.hostedOrderPageError.header = 錯誤詳細資料 +checkout.multi.hostedOrderPostPage.button.submit = 提交 +checkout.multi.hostedOrderPostPage.header.debug = 此頁面會顯示將傳送至 HOP URL 的所有託管訂單頁面 (HOP) API 欄位。此頁面可用於透過變更值以模擬所需行為,對 HOP 進行偵錯. +checkout.multi.hostedOrderPostPage.header.wait = 正在傳輸,請稍候 +checkout.multi.items.to.pickup = 提貨: +checkout.multi.next = 下一步 » +checkout.multi.order.summary = 訂單摘要 +checkout.multi.payment = 付款: +checkout.multi.paymentMethod = 付款與帳單地址 +checkout.multi.paymentMethod.addPaymentDetails.billingAddress = 帳單地址 +checkout.multi.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 若帳單地址與送貨地址不同,請使用此表單輸入帳單地址 +checkout.multi.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 輸入其他帳單地址 +checkout.multi.paymentMethod.addPaymentDetails.enterYourCardDetails = 請輸入用於付款的卡詳細資料 +checkout.multi.paymentMethod.addPaymentDetails.generalError = 聯絡付款提供者時發生錯誤。請稍候幾分鐘,然後再試一次。若問題仍存在,請聯絡我們的銷售團隊. +checkout.multi.paymentMethod.addPaymentDetails.header = 付款詳細資料 +checkout.multi.paymentMethod.addPaymentDetails.paymentCard = 卡詳細資料 +checkout.multi.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 將這些付款詳細資料儲存至我的帳戶 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard = 使用已儲存的卡 +checkout.multi.paymentMethod.addPaymentDetails.useSavedCard.description = 註冊客戶可以選取先前儲存的卡 +checkout.multi.paymentMethod.addPaymentDetails.useThesePaymentDetails = 使用這些付款詳細資料 +checkout.multi.paymentMethod.breadcrumb = 付款與帳單地址 +checkout.multi.paymentMethod.continue = 下一步 +checkout.multi.paymentMethod.createSubscription.billingAddress.noneSelectedMsg = 請先輸入帳單地址,或輸入送貨地址以將其用作帳單地址. +checkout.multi.paymentMethod.createSubscription.failedMsg = 無法建立訂閱。請檢查輸入的值. +checkout.multi.paymentMethod.edit = 編輯 +checkout.multi.paymentMethod.paymentDetails.expires = 到期 {0}/{1} +checkout.multi.paymentMethod.paymentDetails.noneSelected = 未選取 +checkout.multi.paymentMethod.savedCards.actions = 動作 +checkout.multi.paymentMethod.savedCards.billingAddress = 帳單地址 +checkout.multi.paymentMethod.savedCards.enterNewPaymentDetails = 輸入新付款詳細資料 +checkout.multi.paymentMethod.savedCards.noExistingSavedCards = 您沒有已儲存的卡 +checkout.multi.paymentMethod.savedCards.paymentCard = 付款卡 +checkout.multi.paymentMethod.savedCards.select = 選取 +checkout.multi.paymentMethod.savedCards.selectSavedCardOrEnterNew = 選取既有付款詳細資料或輸入新的付款詳細資料 +checkout.multi.paymentMethod.savedCards.stepHeader = 3 - 選取付款詳細資料 +checkout.multi.paymentMethod.viewSavedPayments = 檢視儲存的付款 +checkout.multi.paymentMethod.seeOrderSummaryForMoreInformation = 請參閱訂單摘要區域,以瞭解更多資訊。 +checkout.multi.pickup.items = 提貨 #{0} - {1} 個項目 +checkout.multi.pickupInStore = 店鋪提貨 +checkout.multi.pickupInStore.confirm.and.continue = 只需確認以下資訊,然後繼續下一個結帳步驟即可. +checkout.multi.saveAddress = 儲存地址 +checkout.multi.secure.checkout = 安全結帳 +checkout.multi.shipment.items = 送貨 - {0} 個項目 +checkout.multi.shipment.pickup.location = 送貨/提貨位置 +checkout.multi.sop.globalError = 處理要求期間發生錯誤。可能的動作: 稍候幾分鐘,然後重新傳送訂單. +checkout.multi.sop.remove = 移除 +checkout.multi.sop.savePaymentInfo = 儲存付款資訊 +checkout.multi.sop.useMyDeliveryAddress = 使用我的送貨地址 +checkout.multi.sop.useThisPaymentInfo = 使用此付款資訊 +checkout.multi.summary.breadcrumb = 最終檢閱 +checkout.multi.deliveryAddress.notprovided = 您必須提供送貨地址,然後才能移至下一步. +checkout.multi.deliveryMethod.notprovided = 您必須提供送貨選項,然後才能移至下一步. +checkout.multi.paymentDetails.notprovided = 您必須提供付款詳細資料,然後才能移至下一步. +checkout.orderConfirmation.copySentTo = 已將您訂單詳細資料的副本傳送至 {0} +checkout.orderConfirmation.orderNumber = 您的訂單編號是 {0} +checkout.orderConfirmation.orderNumberShort = 訂單編號 {0} +checkout.orderConfirmation.orderStatus = 訂單狀態: {0} +checkout.orderConfirmation.pickupItems = {0} 個需店鋪提貨的商品 +checkout.orderConfirmation.pickupPoints = {0} 個店舖提貨目的地 +checkout.orderConfirmation.checkoutSuccessful = 結帳成功 +checkout.orderConfirmation.success = 訂購成功! +checkout.orderConfirmation.summary = 您的訂單摘要如下: +checkout.orderConfirmation.thankYou = 感謝您提交訂單。您的訂單編號為 {0} +checkout.orderConfirmation.thankYouForOrder = 訂購成功! 感謝您的惠顧. +checkout.orderConfirmation.yourItems = 您的項目 +checkout.orderConfirmation.continueShopping = 繼續購物 +checkout.orderDetails.hide = [-] 隱藏訂單詳細資料 +checkout.orderDetails.show = [+] 檢視訂單詳細資料 +checkout.paymentMethod.createSubscription.billingAddress.noneSelected = 請先輸入帳單地址,或輸入送貨地址以將其用作帳單地址. +checkout.paymentMethod.createSubscription.failed = 無法建立訂閱。請檢查輸入的值. +checkout.paymentMethod.noSecurityCode = 請提供安全代碼. +checkout.paymentMethod.notSelected = 請提供訂單的付款詳細資料 +checkout.pickup.confirm.and.continue = 只需確認以下資訊,然後繼續下一個結帳步驟即可. +checkout.pickup.continue.button = 繼續 +checkout.pickup.estimated.total = 估計總額: +checkout.pickup.items.appear.later = 待提貨的訂單商品稍後將顯示在結帳中 +checkout.pickup.items.at.one.location = 訂單中所選供提貨的所有商品目前在以下店鋪中有貨: +checkout.pickup.items.available.at.one.location = 您的提貨商品在一個地點有貨 (不影響送貨訂單) +checkout.pickup.items.simplify.pickup.location = 我希望將訂單變更為全部在同一店鋪中提貨 +checkout.pickup.items.to.be.delivered = 待送貨商品 +checkout.pickup.items.to.be.shipped = 送貨地: +checkout.pickup.items.to.pickup = {0} 個待提貨商品 +checkout.pickup.no.delivery.required = 此訂單無需送貨 +checkout.pickup.pickup.in.store = 店鋪提貨 - {0},{1} +checkout.pickup.pickup.in.store.title = 店鋪提貨 +checkout.pickup.simplifyPickup = 簡化提貨地點 +checkout.pickup.store.destinations = {0} 個店舖提貨目的地 +checkout.placeOrder.failed = 無法下訂單 +checkout.security.code = 安全代碼 +checkout.summary.edit = 編輯 +checkout.summary.deliveryAddress = 送貨地址 +checkout.summary.deliveryAddress.edit = 編輯 +checkout.summary.deliveryAddress.editDeliveryAddressButton = 編輯送貨地址 +checkout.summary.deliveryAddress.enterDeliveryAddressButton = 編輯送貨地址 +checkout.summary.deliveryAddress.header = 送貨地址 +checkout.summary.deliveryAddress.noExistingAddresses = 您的通訊錄中沒有地址. +checkout.summary.deliveryAddress.noneSelected = 未選取 +checkout.summary.deliveryAddress.saveAddressInMyAddressBook = 儲存送貨地址 +checkout.summary.deliveryAddress.saveAndUseThisAddress = 儲存並使用此地址 +checkout.summary.deliveryAddress.selectExistingAddress = 選取既有地址 +checkout.summary.deliveryAddress.useForNewAddress = 請使用此表單輸入新地址 +checkout.summary.deliveryAddress.useThisAddress = 使用此地址 +checkout.summary.deliveryMode.editDeliveryMethod = 編輯送貨方式 +checkout.summary.deliveryMode.header = 送貨選項 +checkout.summary.deliveryMode.items.for.pickup = {0} 個需店鋪提貨的商品 +checkout.summary.deliveryMode.noneSelected = 未選取 +checkout.summary.deliveryMode.number.of.pickup.destinations = {0} 個店舖提貨目的地 +checkout.summary.deliveryMode.selectDeliveryMethod = 選取送貨方式 +checkout.summary.deliveryMode.selectDeliveryMethodForOrder = 送貨方式 +checkout.summary.deliveryMode.useThisDeliveryMethod = 使用此送貨方式 +checkout.summary.paymentMethod.addPaymentDetails.billingAddress = 帳單地址 +checkout.summary.paymentMethod.addPaymentDetails.billingAddressDiffersFromDeliveryAddress = 若帳單地址與送貨地址不同,請使用此表單輸入帳單地址 +checkout.summary.paymentMethod.addPaymentDetails.enterDifferentBillingAddress = 輸入其他帳單地址 +checkout.summary.paymentMethod.addPaymentDetails.enterYourCardDetails = 請輸入用於付款的卡詳細資料 +checkout.summary.paymentMethod.addPaymentDetails.header = 付款詳細資料 +checkout.summary.paymentMethod.addPaymentDetails.paymentCard = 付款卡 +checkout.summary.paymentMethod.addPaymentDetails.saveAndUseThesePaymentDetails = 儲存並使用這些付款詳細資料 +checkout.summary.paymentMethod.addPaymentDetails.savePaymentDetailsInAccount = 將這些付款詳細資料儲存至我的帳戶 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard = 使用已儲存的卡 +checkout.summary.paymentMethod.addPaymentDetails.useSavedCard.description = 註冊客戶可以選取先前儲存的卡 +checkout.summary.paymentMethod.addPaymentDetails.useThesePaymentDetails = 使用這些付款詳細資料 +checkout.summary.paymentMethod.billingAddress.header = 帳單地址: +checkout.summary.paymentMethod.editPaymentMethod = 編輯付款方式 +checkout.summary.paymentMethod.header = 付款詳細資料 +checkout.summary.paymentMethod.paymentDetails.expires = 到期 {0}/{1} +checkout.summary.paymentMethod.paymentDetails.noneSelected = 未選取 +checkout.summary.paymentMethod.savedCards.UseThisSavedCard = 使用這些付款詳細資料 +checkout.summary.paymentMethod.savedCards.actions = 動作 +checkout.summary.paymentMethod.savedCards.billingAddress = 帳單地址 +checkout.summary.paymentMethod.savedCards.enterNewPaymentDetails = 輸入新付款詳細資料 +checkout.summary.paymentMethod.savedCards.header = 選取付款詳細資料 +checkout.summary.paymentMethod.savedCards.noExistingSavedCards = 您沒有已儲存的卡 +checkout.summary.paymentMethod.savedCards.paymentCard = 付款卡 +checkout.summary.paymentMethod.savedCards.selectSavedCardOrEnterNew = 選取既有付款詳細資料或輸入新的付款詳細資料 +checkout.summary.paymentMethod.securityCode = 安全代碼 +checkout.summary.paymentMethod.securityCode.whatIsThis = (這是什麼?) +checkout.summary.paymentMethod.securityCode.whatIsThis.description = 卡背面簽名欄上的最後 3 位數。對於 American Express,則是卡正面全息圖上方的 4 位數. +checkout.summary.placeOrder = 下訂單 +checkout.summary.placeOrder.readTermsAndConditions = 透過提交訂單,本人確認已閱讀並同意條款與條件 +checkout.summary.placeOrder.readTermsAndConditions.close = 關閉 +checkout.summary.reviewYourOrder = 最終檢閱 +checkout.summary.reviewYourOrderMessage = 請仔細檢閱您的訂單! +checkout.summary.select.payment.method = 選取付款方式 +checkout.summary.shippingAddress = 送貨地址 + +checkout.express.error.notAvailable = 快速結帳不可用,因為已停用該功能. +checkout.express.error.deliveryAddress = 快速結帳不可用,因為您沒有預設的送貨地址。請在帳戶中設定下次要使用快速結帳的預設送貨地址. +checkout.express.error.deliveryMode = 快速結帳不可用。在設定送貨模式時發生錯誤. +checkout.express.error.paymentInfo = 快速結帳不可用,因為您沒有預設的付款資訊。請在帳戶中設定下次要使用快速結帳的預設付款資訊. + + +payment.cardNumber = 卡號 +payment.cardNumber.invalid = 請輸入有效的卡編號 +payment.cardType = 卡類型 +payment.cardType.invalid = 請選取卡類型 +payment.cardType.pleaseSelect = 請選取卡類型 +payment.cvn = 卡驗證號碼 +payment.expiryDate = 到期日期* +payment.expiryMonth.invalid = 請選取卡的到期月份 +payment.expiryYear.invalid = 請選取卡的到期年份 +payment.issueNumber = 核發編號 +payment.issueNumber.invalid = 該欄位僅允許使用數字 +payment.issueNumber.toolong = 核發編號過長. +payment.month = 月 +payment.nameOnCard = 持卡人名稱 +payment.nameOnCard.invalid = 請輸入持卡人名稱 +payment.startDate = 開始日期 (僅 Maestro/Solo/Switch) +payment.startDate.invalid = 開始日期必須早於到期日期 +payment.year = 年 + +paymentMethod.billingAddress.header = 帳單地址: +paymentMethod.header = 付款詳細資料 + +mobile.checkout.cart.viewFullCart = 檢視完整購物車 +mobile.checkout.cart.viewLess = 檢視更少 +mobile.checkout.confirmOrder = 最終檢閱 +mobile.checkout.continue.button = 繼續 +mobile.checkout.continue.shopping = 繼續購物 +mobile.checkout.deliveryAddress = 送貨地址 +mobile.checkout.deliveryAddress.selectAddressMessage = 從通訊錄中選擇送貨地址,或新增送貨地址 +mobile.checkout.deliveryAddress.use = 使用 +mobile.checkout.deliveryMethod = 送貨選項 +mobile.checkout.edit.link = 編輯 +mobile.checkout.items.hide = 隱藏項目 +mobile.checkout.items.show = 顯示更多項目 +mobile.checkout.paymentMethod = 付款詳細資料 +mobile.checkout.paymentMethod.add.card = 新增卡 +mobile.checkout.paymentMethod.addOrSelect.card = 從電子錢包中選取儲存的付款卡,或新增新卡 +mobile.payment.issueNumber = 核發編號 (僅 Maestro/Solo/Switch) +mobile.multi.checkout.selectExistingCard = 從既有付款詳細資料中選擇 +mobile.checkout.multi.button.submit = 提交 + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/AddDesktopTagsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/AddDesktopTagsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/implicit.tld new file mode 100644 index 000000000..5112d539a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutOrderDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutOrderDetails.tag new file mode 100644 index 000000000..35177de9c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutOrderDetails.tag @@ -0,0 +1,22 @@ +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showShipDeliveryEntries" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showPickupDeliveryEntries" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTax" required="false" type="java.lang.Boolean" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/desktop/cart" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
+ + + + + + +
+
diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutProgressBar.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutProgressBar.tag new file mode 100644 index 000000000..eb11c6aa2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/checkoutProgressBar.tag @@ -0,0 +1,37 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="steps" required="true" type="java.util.List" %> +<%@ attribute name="progressBarId" required="true" type="java.lang.String" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryCartItems.tag new file mode 100644 index 000000000..ea9db0eae --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryCartItems.tag @@ -0,0 +1,93 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/desktop/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
${selectedOption.name}: ${selectedOption.value}
+
+
+
+ + + +
    + + + + + +
  • ${promotion.description}
  • +
    +
    +
    +
+
+ + + +
    + + + + + +
  • ${promotion.description}
  • +
    +
    +
    +
+
+ + + +
: ${entry.quantity}
+ + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodDetails.tag new file mode 100644 index 000000000..fb17c850e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodDetails.tag @@ -0,0 +1,8 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryMethod" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData" %> +<%@ attribute name="isSelected" required="false" type="java.lang.Boolean" %> + +
  • + + +
  • diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodSelector.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodSelector.tag new file mode 100644 index 000000000..501f04808 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/deliveryMethodSelector.tag @@ -0,0 +1,15 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryMethods" required="true" type="java.util.List" %> +<%@ attribute name="selectedDeliveryMethodId" required="false" type="java.lang.String" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + +
      + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/implicit.tld new file mode 100644 index 000000000..5112d539a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupCartItems.tag new file mode 100644 index 000000000..b0251f27b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupCartItems.tag @@ -0,0 +1,98 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="groupData" required="true" type="de.hybris.platform.commercefacades.order.data.OrderEntryGroupData" %> +<%@ attribute name="index" required="true" type="java.lang.Integer" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showHead" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/desktop/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    ${groupData.deliveryPointOfService.name}
    + ${groupData.deliveryPointOfService.address.formattedAddress}
    + + + + + + + + +
    +
    ${selectedOption.name}:
    +
    ${selectedOption.value}
    +
    +
    +
    +
    + +
      + + + + + +
    • ${promotion.description}
    • +
      +
      +
      +
    +
    + +
      + + + + + +
    • ${promotion.description}
    • +
      +
      +
      +
    +
    +
    : ${entry.quantity}
    + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupConsolidationOptions.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupConsolidationOptions.tag new file mode 100644 index 000000000..27fb51235 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupConsolidationOptions.tag @@ -0,0 +1,47 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="pickupConsolidationOptions" required="true" type="java.util.List" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="store" tagdir="/WEB-INF/tags/desktop/store" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
    + +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupGroups.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupGroups.tag new file mode 100644 index 000000000..a2db39e7d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/pickupGroups.tag @@ -0,0 +1,44 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="store" tagdir="/WEB-INF/tags/desktop/store" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + +
    +
    +
    + + + +
    + + ${groupData.deliveryPointOfService.formattedDistance} +
    +
    +
      +
    • ${fn:escapeXml(groupData.deliveryPointOfService.name)}
    • +
    • ${fn:escapeXml(groupData.deliveryPointOfService.address.line1)}
    • +
    • ${fn:escapeXml(groupData.deliveryPointOfService.address.line2)}
    • +
    • ${fn:escapeXml(groupData.deliveryPointOfService.address.town)}
    • +
    • ${fn:escapeXml(groupData.deliveryPointOfService.address.postalCode)}
    • +
    • ${fn:escapeXml(groupData.deliveryPointOfService.address.country.name)}
    • +
    + +
    +
    + +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryAddressDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryAddressDetails.tag new file mode 100644 index 000000000..af1f95c48 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryAddressDetails.tag @@ -0,0 +1,33 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryAddress" required="true" type="de.hybris.platform.commercefacades.user.data.AddressData" %> +<%@ attribute name="cartData" required="false" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
    + + + + + +
      +
    • ${fn:escapeXml(deliveryAddress.title)} ${fn:escapeXml(deliveryAddress.firstName)} ${fn:escapeXml(deliveryAddress.lastName)}
    • +
    • ${fn:escapeXml(deliveryAddress.line1)}
    • +
    • ${fn:escapeXml(deliveryAddress.line2)}
    • +
    • ${fn:escapeXml(deliveryAddress.town)}
    • +
    • ${fn:escapeXml(deliveryAddress.region.name)}
    • +
    • ${fn:escapeXml(deliveryAddress.postalCode)}
    • +
    • ${fn:escapeXml(deliveryAddress.country.name)}
    • +
    +
    + + + +
    +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryMethodDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryMethodDetails.tag new file mode 100644 index 000000000..16598b18b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/selectedDeliveryMethodDetails.tag @@ -0,0 +1,34 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> + +<%@ attribute name="deliveryMethod" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData" %> +<%@ attribute name="cartData" required="false" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
    + +
      +
    • ${deliveryMethod.name}
    • +
    • ${deliveryMethod.description}
    • +
    • ${deliveryMethod.deliveryCost.formattedValue}
    • +
    + + + +
    + + +
      +
    • +
    • +
    +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlow.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlow.tag new file mode 100644 index 000000000..17922f9c6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlow.tag @@ -0,0 +1,18 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryAddress" required="true" type="de.hybris.platform.commercefacades.user.data.AddressData" %> +<%@ attribute name="deliveryMode" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData" %> +<%@ attribute name="paymentInfo" required="true" type="de.hybris.platform.commercefacades.order.data.CCPaymentInfoData" %> +<%@ attribute name="requestSecurityCode" required="true" type="java.lang.Boolean" %> +<%@ attribute name="cartData" required="false" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> + + +
    +
    + +
    + +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryAddress.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryAddress.tag new file mode 100644 index 000000000..6288ee693 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryAddress.tag @@ -0,0 +1,38 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryAddress" required="true" type="de.hybris.platform.commercefacades.user.data.AddressData" %> +<%@ attribute name="cartData" required="false" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + +
    + + + + + + + +
      +
    • ${fn:escapeXml(deliveryAddress.title)} ${fn:escapeXml(deliveryAddress.firstName)} ${fn:escapeXml(deliveryAddress.lastName)}
    • +
    • ${fn:escapeXml(deliveryAddress.line1)}
    • +
    • ${fn:escapeXml(deliveryAddress.line2)}
    • +
    • ${fn:escapeXml(deliveryAddress.town)}
    • +
    • ${fn:escapeXml(deliveryAddress.region.name)}
    • +
    • ${fn:escapeXml(deliveryAddress.postalCode)}
    • +
    • ${fn:escapeXml(deliveryAddress.country.name)}
    • +
    +
    +
    + + + + + + + +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryMode.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryMode.tag new file mode 100644 index 000000000..e6286a494 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowDeliveryMode.tag @@ -0,0 +1,40 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryMode" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData" %> +<%@ attribute name="cartData" required="false" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + +
    + + +
    + +
      +
    • ${deliveryMode.name} (${deliveryMode.code})
    • +
    • ${deliveryMode.description} - ${deliveryMode.deliveryCost.formattedValue}
    • +
    +
    +
    +
    + + +
    +   +
      +
    • +
    • +
    +
    +
    + + + + " class="button positive editButton"> + + +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowPayment.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowPayment.tag new file mode 100644 index 000000000..089dd1fc9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/multi/summaryFlowPayment.tag @@ -0,0 +1,81 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="paymentInfo" required="true" type="de.hybris.platform.commercefacades.order.data.CCPaymentInfoData" %> +<%@ attribute name="requestSecurityCode" required="true" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
    + +
    + + + + +
      +
    • ${cartData.paymentInfo.adyenPaymentBrand}
    • +
    +
    + +
      +
    • +
    +
    +
    + + +
      +
    • ${fn:escapeXml(paymentInfo.accountHolderName)}
    • +
    • ${fn:escapeXml(paymentInfo.cardNumber)}
    • +
    • ${fn:escapeXml(paymentInfo.cardTypeData.name)}
    • +
    • +
    +
    + + + + <%-- +
    +
    + +
    + + +
    +
    +
    +
    --%> +
    +
    +
    + +
    +
      + +
    • +
    • + ${fn:escapeXml(paymentInfo.billingAddress.title)}  + ${fn:escapeXml(paymentInfo.billingAddress.firstName)} ${fn:escapeXml(paymentInfo.billingAddress.lastName)} +
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.line1)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.line2)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.region.name)} ${fn:escapeXml(paymentInfo.billingAddress.town)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.country.name)}
    • +
      +
    +
    +
    + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/summaryCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/summaryCartItems.tag new file mode 100644 index 000000000..8a683fb27 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/summaryCartItems.tag @@ -0,0 +1,96 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/desktop/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    ${selectedOption.name}: ${selectedOption.value}
    +
    +
    +
    + + + +
      + + + + + +
    • ${promotion.description}
    • +
      +
      +
      +
    +
    + + + +
      + + + + + +
    • ${promotion.description}
    • +
      +
      +
      +
    +
    + + + +
    : ${entry.quantity}
    + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/termsAndConditions.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/termsAndConditions.tag new file mode 100644 index 000000000..a2c2b9f70 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/desktop/checkout/termsAndConditions.tag @@ -0,0 +1,6 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/AddMobileTagsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/AddMobileTagsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItem.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItem.tag new file mode 100644 index 000000000..80c3b0739 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItem.tag @@ -0,0 +1,98 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> + +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="entry" required="true" type="de.hybris.platform.commercefacades.order.data.OrderEntryData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/mobile/product" %> + + +
  • + +

    + ${entry.product.name} +

    +
    + +
    +
    + + + +
    +
    +
    +
    +

    ${entry.product.description}

    +
    +
    + + + +
    + ${selectedOption.name}: ${selectedOption.value} +
    +
    +
    +
    + +
    + + : ${entry.quantity} +
    +
    + + :  +
    +
    + + :  +
    +
    +
    +
    + + + + + + +
      +
    • + + ${promotion.description} + +
    • +
    +
    +
    +
    +
    + +
      + + + + + +
    • + + ${promotion.description} + +
    • +
      +
      +
      +
    +
    +
    +
  • \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemGroupsForPickUp.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemGroupsForPickUp.tag new file mode 100644 index 000000000..ed345ef3c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemGroupsForPickUp.tag @@ -0,0 +1,51 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> + +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showAllItems" type="java.lang.Boolean" %> +<%@ attribute name="summary" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
    + +
    +
    + +
      +
    • + +

      +

      +
      + ${fn:escapeXml(groupData.deliveryPointOfService.name)} + ${fn:escapeXml(groupData.deliveryPointOfService.address.line1)} + ${fn:escapeXml(groupData.deliveryPointOfService.address.line2)} + ${fn:escapeXml(groupData.deliveryPointOfService.address.town)} + ${fn:escapeXml(groupData.deliveryPointOfService.address.postalCode)} + ${fn:escapeXml(groupData.deliveryPointOfService.address.country.name)} + + + + + + +
    • + + + +
    • + "> + + +
    • +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForPickUp.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForPickUp.tag new file mode 100644 index 000000000..a18e93f57 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForPickUp.tag @@ -0,0 +1,12 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> + +<%@ attribute name="groupData" required="true" type="de.hybris.platform.commercefacades.order.data.OrderEntryGroupData" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForShipping.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForShipping.tag new file mode 100644 index 000000000..ed7ee9283 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/cartItemsForShipping.tag @@ -0,0 +1,16 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> + +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showAllItems" type="java.lang.Boolean" %> + +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + +
      + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/implicit.tld new file mode 100644 index 000000000..5112d539a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/checkoutProgressBar.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/checkoutProgressBar.tag new file mode 100644 index 000000000..7380739c1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/checkoutProgressBar.tag @@ -0,0 +1,38 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="steps" required="true" type="java.util.List"%> +<%@ attribute name="progressBarId" required="true" type="java.lang.String"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + +
    +
      + + + + + +
    • + + + +
    • +
      + +
    • + + + +
    • +
      + +
    • + + + +
    • +
      +
      +
      +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodDetails.tag new file mode 100644 index 000000000..7cae6c3e6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodDetails.tag @@ -0,0 +1,44 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="id" required="true" type="java.lang.String"%> +<%@ attribute name="deliveryMethod" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData"%> +<%@ attribute name="isSelected" required="false" type="java.lang.Boolean"%> +<%@ attribute name="isSelectable" required="false" type="java.lang.Boolean"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +
    + + + + + + + + + + + + + + + +
    + ${deliveryMethod.name}
    ${deliveryMethod.description}
    ${deliveryMethod.deliveryCost.formattedValue}
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodSelector.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodSelector.tag new file mode 100644 index 000000000..93e51ccc8 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/deliveryMethodSelector.tag @@ -0,0 +1,31 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="deliveryMethods" required="true" type="java.util.List"%> +<%@ attribute name="selectedDeliveryMethodId" required="false" type="java.lang.String"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + +
    + + + +
    +
    + + + +
    +
    + +
      +
    • +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/implicit.tld new file mode 100644 index 000000000..5112d539a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlow.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlow.tag new file mode 100644 index 000000000..c19ebb447 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlow.tag @@ -0,0 +1,27 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="deliveryMode" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData"%> +<%@ attribute name="paymentInfo" required="true" type="de.hybris.platform.commercefacades.order.data.CCPaymentInfoData"%> +<%@ attribute name="requestSecurityCode" required="true" type="java.lang.Boolean"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + +
    +
    +

    + +

    +

    + +

    +
    + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryAddress.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryAddress.tag new file mode 100644 index 000000000..e231924b3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryAddress.tag @@ -0,0 +1,40 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="deliveryAddress" required="true" type="de.hybris.platform.commercefacades.user.data.AddressData"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags"%> + +
    + +
    +

    + + +

    +
    +
    +
    +
      +
    • ${deliveryAddress.title} ${deliveryAddress .firstName} ${deliveryAddress.lastName}
    • +
    • ${deliveryAddress.line1}
    • + +
    • ${deliveryAddress.line2}
    • +
      +
    • ${deliveryAddress.town}
    • +
    • ${deliveryAddress.region.name}
    • +
    • ${deliveryAddress.postalCode}
    • +
    • ${deliveryAddress.country.name}
    • +
    +
    +
    + + + + + + +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryMode.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryMode.tag new file mode 100644 index 000000000..c9180500c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowDeliveryMode.tag @@ -0,0 +1,49 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + + + +
    + +
    +

    + + +

    +
    +
    +
    +
      + +
    • ${deliveryMode.name} (${deliveryMode.code})
    • +
    • + ${deliveryMode.description} - ${deliveryMode.deliveryCost.formattedValue} +
    • +
      +
      + +
    • +
    • +
      +
    +
    +
    + + + + + + + + +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowPayment.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowPayment.tag new file mode 100644 index 000000000..801eecdee --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/multi/summaryFlowPayment.tag @@ -0,0 +1,70 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true"%> +<%@ attribute name="paymentInfo" required="true" type="de.hybris.platform.commercefacades.order.data.CCPaymentInfoData"%> +<%@ attribute name="requestSecurityCode" required="true" type="java.lang.Boolean"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags"%> + + + +
    +
    + +
    +
    + +
    +

    + + +

    +
    +
    +
    +
      + + +
    • ${paymentInfo.accountHolderName}
    • +
    • ${paymentInfo.cardNumber}
    • +
    • ${paymentInfo.cardType}
    • +
    • +
      + +
    • +
      +
      +
      + +
    • +
      +
      +
      + + +
      + +
      +
      +
      +
      +
      +
      +
      +
    • +
      +
    +
    +
    + + + + + + + + +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/pickupConsolidationOptions.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/pickupConsolidationOptions.tag new file mode 100644 index 000000000..b41c32212 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/pickupConsolidationOptions.tag @@ -0,0 +1,49 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="pickupConsolidationOptions" required="true" type="java.util.List" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="store" tagdir="/WEB-INF/tags/mobile/store" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
    +
    + +

    + +

    +
    +
    + +
    + checked="checked" /> + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/summaryCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/summaryCartItems.tag new file mode 100644 index 000000000..e79374e07 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/summaryCartItems.tag @@ -0,0 +1,29 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="summary" required="false" type="java.lang.Boolean" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + +
    +
    +
    + + + ${cartData.code} + + +
    + +
    + + + + + +
    +
    + +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/termsAndConditions.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/termsAndConditions.tag new file mode 100644 index 000000000..a2c2b9f70 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/mobile/checkout/termsAndConditions.tag @@ -0,0 +1,6 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/implicit.tld new file mode 100644 index 000000000..2836bfc02 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderDetails.tag new file mode 100644 index 000000000..6983d75cc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderDetails.tag @@ -0,0 +1,31 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showDeliveryAddress" required="true" type="java.lang.Boolean" %> +<%@ attribute name="showPaymentInfo" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTax" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTaxEstimate" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi" %> + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderSummary.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderSummary.tag new file mode 100644 index 000000000..5133e5993 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutOrderSummary.tag @@ -0,0 +1,56 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showDeliveryAddress" required="true" type="java.lang.Boolean" %> +<%@ attribute name="showPaymentInfo" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTax" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTaxEstimate" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + +
    +
    + +
    + +
    + +
      + + + + + + + +
    + + +
    +
    + +
    +
    + + + + + +
    +
    +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutSteps.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutSteps.tag new file mode 100644 index 000000000..6902d7be8 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/checkoutSteps.tag @@ -0,0 +1,48 @@ +<%@ tag body-content="scriptless" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ attribute name="checkoutSteps" required="true" type="java.util.List" %> +<%@ attribute name="progressBarId" required="true" type="java.lang.String" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + +
    + +
    + + + + + + +
    +
    +
    +
    + + +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryCartItems.tag new file mode 100644 index 000000000..76ca8b2b5 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryCartItems.tag @@ -0,0 +1,116 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showDeliveryAddress" required="true" type="java.lang.Boolean" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/responsive/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + + + + +
  • + + +
    +
    + ${fn:escapeXml(deliveryAddress.title)} ${fn:escapeXml(deliveryAddress.firstName)} ${fn:escapeXml(deliveryAddress.lastName)} +
    + + ${fn:escapeXml(deliveryAddress.line1)},  + + + ${fn:escapeXml(deliveryAddress.line2)},  + + + ${fn:escapeXml(deliveryAddress.town)},  + + + ${fn:escapeXml(deliveryAddress.region.name)},  + + + ${fn:escapeXml(deliveryAddress.postalCode)},  + + + ${fn:escapeXml(deliveryAddress.country.name)} + +
    +
    + +
    +
    +
    + +
  • +
    + + + + +
  • +
    + + + +
    +
    +
    + +
     ${entry.quantity}
    +
    + + + +
    ${selectedOption.name}: ${selectedOption.value}
    +
    +
    +
    + + +
      + + + + + + ${promotion.description} + + + +
    +
    + + + +
      + + + + + + ${promotion.description} + + + +
    +
    +
    +
    + + +
  • +
    +
    + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodDetails.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodDetails.tag new file mode 100644 index 000000000..1ae93520b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodDetails.tag @@ -0,0 +1,7 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryMethod" required="true" type="de.hybris.platform.commercefacades.order.data.DeliveryModeData" %> +<%@ attribute name="isSelected" required="false" type="java.lang.Boolean" %> + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodSelector.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodSelector.tag new file mode 100644 index 000000000..00d2f8f49 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/deliveryMethodSelector.tag @@ -0,0 +1,15 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="deliveryMethods" required="true" type="java.util.List" %> +<%@ attribute name="selectedDeliveryMethodId" required="false" type="java.lang.String" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/implicit.tld b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/implicit.tld new file mode 100644 index 000000000..2836bfc02 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/implicit.tld @@ -0,0 +1,9 @@ + + + 1.0 + implicit + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/orderTotals.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/orderTotals.tag new file mode 100644 index 000000000..142dfea63 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/orderTotals.tag @@ -0,0 +1,89 @@ +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showTax" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showTaxEstimate" required="false" type="java.lang.Boolean" %> +<%@ attribute name="subtotalsCssClasses" required="false" type="java.lang.String" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + +
    +
    + +
    + + + + + + +
    + + +
    + + + + + + +
    +
    + +
    + + + + +
    +
    +
    + + + + + + + + + + + + + + +
    + +
    + +

    + +

    +
    +
    +
    + +
    + +

    + +

    +
    +
    +
    + +
    + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/paymentInfo.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/paymentInfo.tag new file mode 100644 index 000000000..472f8e139 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/paymentInfo.tag @@ -0,0 +1,21 @@ +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="paymentInfo" required="true" type="de.hybris.platform.commercefacades.order.data.CCPaymentInfoData" %> +<%@ attribute name="showPaymentInfo" required="false" type="java.lang.Boolean" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + +
  • +
    +
    + ${fn:escapeXml(paymentInfo.billingAddress.title)} + ${fn:escapeXml(paymentInfo.accountHolderName)}, ${fn:escapeXml(paymentInfo.cardTypeData.name)}, + ${fn:escapeXml(paymentInfo.cardNumber)}, ${paymentInfo.expiryMonth}/${paymentInfo.expiryYear}, ${fn:escapeXml(paymentInfo.billingAddress.line1)}, ${fn:escapeXml(paymentInfo.billingAddress.line2)}, + ${fn:escapeXml(paymentInfo.billingAddress.town)}, ${fn:escapeXml(paymentInfo.billingAddress.region.name)} ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}, ${fn:escapeXml(paymentInfo.billingAddress.country.name)} +
    +
  • +
    + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupCartItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupCartItems.tag new file mode 100644 index 000000000..7a9bd2bec --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupCartItems.tag @@ -0,0 +1,100 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="groupData" required="true" type="de.hybris.platform.commercefacades.order.data.OrderEntryGroupData" %> +<%@ attribute name="index" required="true" type="java.lang.Integer" %> +<%@ attribute name="showPotentialPromotions" required="false" type="java.lang.Boolean" %> +<%@ attribute name="showHead" required="false" type="java.lang.Boolean" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="format" tagdir="/WEB-INF/tags/shared/format" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/responsive/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + +
  • +
    +
    + ${groupData.deliveryPointOfService.name} +
    + + ${fn:escapeXml(groupData.deliveryPointOfService.address.line1)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.line2)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.town)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.region.name)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.postalCode)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.country.name)} + +
    +
  • +
    + + +
  • +
    + + + +
    +
    +
    + +
     ${entry.quantity}
    +
    + + + +
    ${selectedOption.name}: ${selectedOption.value}
    +
    +
    +
    +
    + +
      + + + + + + ${promotion.description} + + + +
    +
    + +
      + + + + + + ${promotion.description} + + + +
    +
    +
    + + + +
  • +
    + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups.tag new file mode 100644 index 000000000..13f14ee36 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups.tag @@ -0,0 +1,62 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + +
    +
    + + +
    +
    +
    + + +
    +

    + ${fn:escapeXml(groupData.deliveryPointOfService.name)} +
    + + ${fn:escapeXml(groupData.deliveryPointOfService.address.line1)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.line2)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.town)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.region.name)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.postalCode)},  + + + ${fn:escapeXml(groupData.deliveryPointOfService.address.country.name)} + +

    +
      + + +
    • + ${entry.product.name} +  ${entry.quantity} +
    • +
      + +
    +
    +
    + + +
    +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups2.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups2.tag new file mode 100644 index 000000000..334fb3bec --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/pickupGroups2.tag @@ -0,0 +1,39 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="orderData" required="true" type="de.hybris.platform.commercefacades.order.data.OrderData" %> + +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + +
    +
    + + +
    +

    + ${fn:escapeXml(groupData.deliveryPointOfService.name)} +
    + + ${fn:escapeXml(groupData.deliveryPointOfService.address.line1)} + + + , ${fn:escapeXml(groupData.deliveryPointOfService.address.line2)}
    +
    + + ${fn:escapeXml(groupData.deliveryPointOfService.address.town)} + + + , ${fn:escapeXml(groupData.deliveryPointOfService.address.region.name)}
    +
    + + ${fn:escapeXml(groupData.deliveryPointOfService.address.country.name)} + +

    +
    +
    + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/shipmentItems.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/shipmentItems.tag new file mode 100644 index 000000000..faef398c3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/multi/shipmentItems.tag @@ -0,0 +1,56 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ attribute name="cartData" required="true" type="de.hybris.platform.commercefacades.order.data.CartData" %> +<%@ attribute name="showDeliveryAddress" required="true" type="java.lang.Boolean" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="product" tagdir="/WEB-INF/tags/responsive/product" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + +
    +
    + +

    + ${fn:escapeXml(deliveryAddress.title)} ${fn:escapeXml(deliveryAddress.firstName)} ${fn:escapeXml(deliveryAddress.lastName)} +
    + + ${fn:escapeXml(deliveryAddress.line1)},  + + + ${fn:escapeXml(deliveryAddress.line2)},  + + + ${fn:escapeXml(deliveryAddress.town)},  + + + ${fn:escapeXml(deliveryAddress.region.name)},  + + + ${fn:escapeXml(deliveryAddress.postalCode)},  + + + ${fn:escapeXml(deliveryAddress.country.name)} + +

    +
    +
      + + + +
    • + ${entry.product.name} +  ${entry.quantity} +
    • +
      +
      +
    +
    + +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/termsAndConditions.tag b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/termsAndConditions.tag new file mode 100644 index 000000000..346ee6360 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkout/termsAndConditions.tag @@ -0,0 +1,16 @@ +<%@ tag body-content="empty" trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tld/AddTagLibsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/tld/AddTagLibsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/cms/AddCmsComponentsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/cms/AddCmsComponentsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/AddPageFragmentsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/AddPageFragmentsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/billingAddressForm.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/billingAddressForm.jsp new file mode 100644 index 000000000..6c12f15ec --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/billingAddressForm.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/desktop/address"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/deliveryAddressFormPopup.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/deliveryAddressFormPopup.jsp new file mode 100644 index 000000000..e8d99a9c4 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/deliveryAddressFormPopup.jsp @@ -0,0 +1,4 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="single-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/paymentDetailsFormPopup.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/paymentDetailsFormPopup.jsp new file mode 100644 index 000000000..26ff68129 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/single/paymentDetailsFormPopup.jsp @@ -0,0 +1,4 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="single-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/termsAndConditionsPopup.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/termsAndConditionsPopup.jsp new file mode 100644 index 000000000..547a6ef13 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/fragments/checkout/termsAndConditionsPopup.jsp @@ -0,0 +1,4 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/AddPagesHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/AddPagesHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addEditDeliveryAddressPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addEditDeliveryAddressPage.jsp new file mode 100644 index 000000000..a4460073c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addEditDeliveryAddressPage.jsp @@ -0,0 +1,76 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/desktop/nav" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/desktop/address" %> + + + +
    + +
    + + +
    +
    + +
    +
    +
    + + + + +
    +
    +
    + +
    +
    + +
    +
    + +
      +
    • ${fn:escapeXml(deliveryAddress.title)}  ${fn:escapeXml(deliveryAddress.firstName)}  ${fn:escapeXml(deliveryAddress.lastName)}
    • +
    • ${fn:escapeXml(deliveryAddress.line1)}
    • +
    • ${fn:escapeXml(deliveryAddress.line2)}
    • +
    • ${fn:escapeXml(deliveryAddress.town)}  ${fn:escapeXml(deliveryAddress.postalCode)}
    • +
    • ${fn:escapeXml(deliveryAddress.country.name)}  ${fn:escapeXml(deliveryAddress.region.name)}
    • +
    + +
    + + + + +
    +
    +
    +
    +
    +
    +
    + +
    + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addPaymentMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addPaymentMethodPage.jsp new file mode 100644 index 000000000..d269c869e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/addPaymentMethodPage.jsp @@ -0,0 +1,359 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/desktop/nav" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/desktop/formElement" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + + + + + + + + + +
    + +
    + + + +
    +
    + + + + + + + + + + + + + + + + + +
    +
    +
      + +
    • +
      +
      +
      +
      ${savedAdyenPaymentMethod.recurringDetail.additionalData.cardBin}****${savedAdyenPaymentMethod.recurringDetail.card.number} + + +
      +
      +
      ${savedAdyenPaymentMethod.recurringDetail.card.holderName} + +
      +
      +
      + + + +
      +
      *
      +
      +
      +
      +
      + +
      +
    • +
      +
    +
    +
    + <%--End Saved Payments --%> +
    +
    +
    +
    + + <%-- --%> + + +
    + + + +
    +
    + + + +
    +
    + +
    + + +
    +
    + + + + +
    + +
    +
    + +
    +
    + + +
    +
    + + +
    + + + + +
    + + +
    + + + + + + + + + + + +
    + +
    + + + + +
    +
    + + + + + + +
    + +
    +
    + + + + + + +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + + + + + + + + + +
    +
    <%-- HPP Payment Methods end --%> +
    +
    +
    + + + + + +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/adyen-3d-secure-payment-validation.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/adyen-3d-secure-payment-validation.jsp new file mode 100644 index 000000000..a1aaf2202 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/adyen-3d-secure-payment-validation.jsp @@ -0,0 +1,23 @@ + + + + + Adyen 3D Secure Payment + + +
    + + + + +
    + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/checkoutSummaryPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/checkoutSummaryPage.jsp new file mode 100644 index 000000000..fb1df3be6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/checkoutSummaryPage.jsp @@ -0,0 +1,78 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/desktop/cart" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + + +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + +
    + + +
    +
    +
    + + +
    + + + + + + + + + + + + + +
    +
    + + + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/chooseDeliveryMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/chooseDeliveryMethodPage.jsp new file mode 100644 index 000000000..1907d5dc7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/chooseDeliveryMethodPage.jsp @@ -0,0 +1,46 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/desktop/cart" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + +
    + +
    + + +
    +
    +
    +

    + + + + +
    + + +
    +
    +
    +
    +
    + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/choosePickupLocationPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/choosePickupLocationPage.jsp new file mode 100644 index 000000000..28f07fca7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/choosePickupLocationPage.jsp @@ -0,0 +1,40 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/desktop/cart" %> + + + + +
    + + +
    + + + +
    + + + + + + +
    + + + + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPageErrorPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPageErrorPage.jsp new file mode 100644 index 000000000..23f2b7571 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPageErrorPage.jsp @@ -0,0 +1,43 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/desktop/nav" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
    + +
    + + + + + +
    +
    +
    +
    +

    +
    +
    +
    + +

    + +

    +
    + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPostPage.jsp new file mode 100644 index 000000000..6e8d6f066 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/hostedOrderPostPage.jsp @@ -0,0 +1,60 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + +
    + +
    +
    +

    + + +

    +
    +
    +
    + + +
    +
    +

    + +

    +
    +
    +
    +
    + +
    + +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/silentOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/silentOrderPostPage.jsp new file mode 100644 index 000000000..ca4a65ab7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/desktop/pages/checkout/multi/silentOrderPostPage.jsp @@ -0,0 +1,162 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/desktop/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/desktop/nav" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/desktop/formElement" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/desktop/common" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/desktop/checkout/multi" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/desktop/address" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + +
    + +
    + + + + +
    +
    + + + + + + + + + + + + + +
    +
    +
    + + + + + +
    + + + + + +
    + + + +
    + +
    + + +
    + + + +
    + + +
    + + + + + + + + +
    +
    + + +
    + + + +
    +
    +
    + + + + +
    +
    +
    +
    + +
    + +
    +
    + +
      +
    • ${fn:escapeXml(paymentInfo.cardType)}
    • +
    • ${fn:escapeXml(paymentInfo.cardNumber)}
    • +
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.firstName)}  ${fn:escapeXml(paymentInfo.billingAddress.lastName)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.line1)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.region.isocodeShort)}  ${fn:escapeXml(paymentInfo.billingAddress.town)}
    • +
    • ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}
    • +
    + +
    + + + + +
    +
    +
    +
    +
    +
    +
    + +
    + + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/cms/AddCmsComponentsHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/cms/AddCmsComponentsHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/billingAddressForm.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/billingAddressForm.jsp new file mode 100644 index 000000000..4a396e0ea --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/billingAddressForm.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/mobile/address"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/termsAndConditionsPopup.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/termsAndConditionsPopup.jsp new file mode 100644 index 000000000..96a6f7972 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/fragments/checkout/termsAndConditionsPopup.jsp @@ -0,0 +1,4 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addEditDeliveryAddressPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addEditDeliveryAddressPage.jsp new file mode 100644 index 000000000..1a3a4f9f6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addEditDeliveryAddressPage.jsp @@ -0,0 +1,83 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/mobile/nav" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/mobile/address"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi" %> + + + +
    + +
    + +
    +
    +
    +

    + +

    + +

    + +

    + +

    +

    + +

    + + + +
    + + +
    + +
    +
    + + + ${fn:escapeXml(deliveryAddress.title)}  ${fn:escapeXml(deliveryAddress.firstName)}  ${fn:escapeXml(deliveryAddress.lastName)} + ${fn:escapeXml(deliveryAddress.line1)} + ${fn:escapeXml(deliveryAddress.line2)} + + + ${fn:escapeXml(deliveryAddress.town)}  ${fn:escapeXml(deliveryAddress.postalCode)} + ${fn:escapeXml(deliveryAddress.country.name)}  ${fn:escapeXml(deliveryAddress.region.name)} + + + ${fn:escapeXml(deliveryAddress.town)}  ${fn:escapeXml(deliveryAddress.postalCode)} + ${fn:escapeXml(deliveryAddress.country.name)} + + + +
    + + + + +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addPaymentMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addPaymentMethodPage.jsp new file mode 100644 index 000000000..836d50f7c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/addPaymentMethodPage.jsp @@ -0,0 +1,131 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/mobile/cart" %> +<%@ taglib prefix="checkout-cart" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template"%> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme"%> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi"%> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags"%> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + + + + +
    + + +
    +

    + +

    +
      +
    • +

      +

      +
    • +
    • + + +
    • +
    • +
    • +
    • + +
      +
      + +
      +
      + +
      +
      +
    • +
    • + +
      +
      + +
      +
      + +
      +
      +
    • +
    • +
      +
      + +
      +
      +
    • + +
    • + + +
    • +
      +
    • +
    • + + +
    • +
    +
    + + +
    +
    + + + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/checkoutSummaryPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/checkoutSummaryPage.jsp new file mode 100644 index 000000000..b2fb67b98 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/checkoutSummaryPage.jsp @@ -0,0 +1,83 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template"%> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/mobile/cart"%> +<%@ taglib prefix="checkout-cart" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout"%> +<%@ taglib prefix="user" tagdir="/WEB-INF/tags/mobile/user"%> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement"%> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi"%> + + + + + + + + + + + + + +
    +
    + +
    +
    +
    + + + +
    + +
    + + + + +
      +
    • + +
    • +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    + + + + +
      +
    • + +
    • +
    +
    + + + + +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/chooseDeliveryMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/chooseDeliveryMethodPage.jsp new file mode 100644 index 000000000..66c0440e9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/chooseDeliveryMethodPage.jsp @@ -0,0 +1,34 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template" %> +<%@ taglib prefix="checkout-cart" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/mobile/cart" %> +<%@ taglib prefix="user" tagdir="/WEB-INF/tags/mobile/user" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> + + + + +
    +
    +

    + +

    +

    + +

    + +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/choosePickupLocationPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/choosePickupLocationPage.jsp new file mode 100644 index 000000000..8f958db34 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/choosePickupLocationPage.jsp @@ -0,0 +1,42 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout" %> +<%@ taglib prefix="cart" tagdir="/WEB-INF/tags/mobile/cart" %> +<%@ taglib prefix="user" tagdir="/WEB-INF/tags/mobile/user" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> + + + + + + +
    +
    +

    + +

    +

    + +

    +
    +
    +
    + +
    +
    + +
    +
    + + + +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPageErrorPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPageErrorPage.jsp new file mode 100644 index 000000000..0174301f7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPageErrorPage.jsp @@ -0,0 +1,46 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template"%> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme"%> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/mobile/nav"%> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags"%> + + + +
    + +
    + + + + + +
    +
    +
    +
    +

    + +

    +
    +
    +
    + +

    +
    + + + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPostPage.jsp new file mode 100644 index 000000000..96b9bbf56 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/hostedOrderPostPage.jsp @@ -0,0 +1,57 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + +
    +
    +
    +

    + + +

    +
    +
    + +
    +
    +

    + +

    +
    +
    +
    +
    + +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/silentOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/silentOrderPostPage.jsp new file mode 100644 index 000000000..39ed19c6e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/mobile/pages/checkout/multi/silentOrderPostPage.jsp @@ -0,0 +1,172 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/mobile/template" %> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme" %> +<%@ taglib prefix="nav" tagdir="/WEB-INF/tags/mobile/nav" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/mobile/formElement" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/mobile/common" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/mobile/checkout/multi" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/mobile/address" %> + + + + + +
    + +
    + + + + +
    +
    +
    +
    +
    +
    +

    +
    +
    + + +
    +

    + +

    + +
    +
    + + ${fn:escapeXml(paymentInfo.cardType)} + ${fn:escapeXml(paymentInfo.cardNumber)} + + ${fn:escapeXml(paymentInfo.billingAddress.firstName)}  ${fn:escapeXml(paymentInfo.billingAddress.lastName)} + ${fn:escapeXml(paymentInfo.billingAddress.line1)} + ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}  ${fn:escapeXml(paymentInfo.billingAddress.town)} + +
    + + + + +
    +
    +
    +
    + +
    + + + + + + + + + + + +
    +

    + +

    +
    +

    +

    +
    +
    + + + + + +
    +
    +
    + + + + + +
    +
    +
    + +
    +
    + + + + + + + +
    + +
    + +
    +
    + + + +
    +
    +
    + +
    +
    +
    +
    +
    +

    +
    + + + + + + +
    + + +
    + + + +
    +
    +
    + +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/billingAddressForm.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/billingAddressForm.jsp new file mode 100644 index 000000000..064ed4d35 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/billingAddressForm.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/responsive/address"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/termsAndConditionsPopup.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/termsAndConditionsPopup.jsp new file mode 100644 index 000000000..cc8f434c6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/fragments/checkout/termsAndConditionsPopup.jsp @@ -0,0 +1,4 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout" %> + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addEditDeliveryAddressPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addEditDeliveryAddressPage.jsp new file mode 100644 index 000000000..5d9ce4b0a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addEditDeliveryAddressPage.jsp @@ -0,0 +1,93 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="theme" tagdir="/WEB-INF/tags/shared/theme"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/responsive/common"%> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/responsive/address"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
    +
    + + + +
    + + +
    +
    + + + + +
    + + +
    +
    + +
      +
    • + ${fn:escapeXml(deliveryAddress.title)}  + ${fn:escapeXml(deliveryAddress.firstName)}  + ${fn:escapeXml(deliveryAddress.lastName)} +
      + ${fn:escapeXml(deliveryAddress.line1)}  + ${fn:escapeXml(deliveryAddress.line2)} +
      + ${fn:escapeXml(deliveryAddress.town)} + +  ${fn:escapeXml(deliveryAddress.region.name)} + +
      + ${fn:escapeXml(deliveryAddress.country.name)}  + ${fn:escapeXml(deliveryAddress.postalCode)} +
    • +
    + +
    +
    +
    +
    + + +
    + + +
    + + + +
    +
    + + + +
    + + + +
    + + + +
    +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addPaymentMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addPaymentMethodPage.jsp new file mode 100644 index 000000000..612fff2d9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/addPaymentMethodPage.jsp @@ -0,0 +1,204 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="multiCheckout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/responsive/formElement" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/responsive/address" %> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + + + +
    +
    + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + +
    + + +
    + + +
    + +
    + +
    + + +
    + +
    +
    + +
    +
    + +
    +
    +
    + + +
    + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + +
    +
    + +
    + + + + +
    + + +
    + + + + + + + +

    + + + + + + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + +
    + + ${fn:escapeXml(paymentInfo.billingAddress.firstName)}  ${fn:escapeXml(paymentInfo.billingAddress.lastName)}
    + ${fn:escapeXml(paymentInfo.cardType)}
    + ${fn:escapeXml(paymentInfo.accountHolderName)}
    + ${fn:escapeXml(paymentInfo.cardNumber)}
    +
    + ${fn:escapeXml(paymentInfo.billingAddress.line1)}
    + ${fn:escapeXml(paymentInfo.billingAddress.town)}  ${fn:escapeXml(paymentInfo.billingAddress.region.isocodeShort)}
    + ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}  ${fn:escapeXml(paymentInfo.billingAddress.country.isocode)}
    + + +
    +
    +
    +
    +
    +
    + +
    + + + + +
    + + + +
    +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/checkoutSummaryPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/checkoutSummaryPage.jsp new file mode 100644 index 000000000..a1a4a187d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/checkoutSummaryPage.jsp @@ -0,0 +1,54 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + + +
    + +
    +
    + + +
    + +
    +
    +
    + + + +
    + + + + +
    +
    + + +
    \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/chooseDeliveryMethodPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/chooseDeliveryMethodPage.jsp new file mode 100644 index 000000000..904aeb053 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/chooseDeliveryMethodPage.jsp @@ -0,0 +1,45 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/responsive/formElement" %> +<%@ taglib prefix="multi-checkout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi"%> +<%@ taglib prefix="ycommerce" uri="http://hybris.com/tld/ycommercetags" %> + + + +
    + +
    +
    + + + +
    + +
    +
    +
    +
    + +
    +
    +

    +
    +
    + +
    +
    +
    + + +
    + + + +
    +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/choosePickupLocationPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/choosePickupLocationPage.jsp new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPageErrorPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPageErrorPage.jsp new file mode 100644 index 000000000..0d4830a7f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPageErrorPage.jsp @@ -0,0 +1,28 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags" %> +<%@ taglib prefix="common" tagdir="/WEB-INF/tags/responsive/common" %> + + + + +

    + + +
    + + + +
    + +
    +
    + + + + + + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPostPage.jsp new file mode 100644 index 000000000..1864f582f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/hostedOrderPostPage.jsp @@ -0,0 +1,60 @@ +<%@ page trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + +
    + +
    +
    +

    + + +

    +
    +
    +
    + + +
    +
    +

    + +

    +
    +
    +
    +
    + +
    + +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/silentOrderPostPage.jsp b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/silentOrderPostPage.jsp new file mode 100644 index 000000000..d61476852 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/silentOrderPostPage.jsp @@ -0,0 +1,202 @@ +<%@ page trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="template" tagdir="/WEB-INF/tags/responsive/template"%> +<%@ taglib prefix="cms" uri="http://hybris.com/tld/cmstags"%> +<%@ taglib prefix="multiCheckout" tagdir="/WEB-INF/tags/addons/adyenAddon/responsive/checkout/multi"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="formElement" tagdir="/WEB-INF/tags/responsive/formElement" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="address" tagdir="/WEB-INF/tags/responsive/address" %> + + + + + + +
    + +
    +
    + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + +
    + + + +
    + +
    + +
    + + +
    + + +
    + +
    + +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + + +
    + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    +
    + + + + + + + + + + +
    +
    + +
    + + + + +
    + + +
    + + + + + + + +

    + + + + + + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + +
    + + ${fn:escapeXml(paymentInfo.billingAddress.firstName)}  ${fn:escapeXml(paymentInfo.billingAddress.lastName)}
    + ${fn:escapeXml(paymentInfo.cardType)}
    + ${fn:escapeXml(paymentInfo.cardNumber)}
    +
    + ${fn:escapeXml(paymentInfo.billingAddress.line1)}
    + ${fn:escapeXml(paymentInfo.billingAddress.town)}  ${fn:escapeXml(paymentInfo.billingAddress.region.isocodeShort)}
    + ${fn:escapeXml(paymentInfo.billingAddress.postalCode)}  ${fn:escapeXml(paymentInfo.billingAddress.country.isocode)}
    + + +
    +
    +
    +
    + +
    + +
    + + + + +
    + + + +
    +
    + +
    diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/adyenAddon.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/adyenAddon.css new file mode 100644 index 000000000..1788e2791 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/adyenAddon.css @@ -0,0 +1,24 @@ +.savedCardDetails dt, dd{ + line-height: 20px; +} +.savedCardDetails dt{ + width:90px; + display: inline-block; +} + +.savedCardDetails dd{ + display: inline-block; + width:170px; +} + +.savedCardDetails { + float: left; + width: 300px; + display: block; +} + +.savedCardAction { + float: right; + width: 150px; + display: block; +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/b2ccheckoutaddon.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/b2ccheckoutaddon.css new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutContentPanel.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutContentPanel.css new file mode 100644 index 000000000..c78b91bfc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutContentPanel.css @@ -0,0 +1,488 @@ +/* +## checkoutContentPanel +********************************************************************/ + + +#checkoutContentPanel{ + border: 1px dotted #A5A5A5; + padding:0 20px 20px 20px; + position:relative; + margin:0 0 60px 0; +} + +#checkoutContentPanel .headline{ + border-bottom: 1px solid #A5A5A5; + font-size: 1.2em; + font-weight: bold; + height: 39px; + line-height: 39px; + text-transform: uppercase; + margin:0 0 20px 0; +} + +#checkoutContentPanel .description{ + margin:0 0 20px 0; +} + +#checkoutContentPanel .contentPanelRight, +#checkoutContentPanel .contentPanelLeft{ + width:244px; +} + + +#checkoutContentPanel .contentPanelLeft{ + margin:0 20px 0 0; +} + + + + + + +#checkoutContentPanel .savedPaymentItem{ + border: 1px dotted #A5A5A5; + margin:0 0 10px 0; +} + + + +#checkoutContentPanel .i18nAddressForm, +#checkoutContentPanel .billingAddressForm, +#checkoutContentPanel .cardForm{ + margin-right:-20px; +} +#checkoutContentPanel .control-group{ + float:left; + width:244px; + margin-right:20px; +} + + +#checkoutContentPanel .form-actions{ + position:absolute; + bottom:-60px; + right:0; + left: 0; +} + + +#checkoutContentPanel .form-actions button.positive{ + margin-right:0; +} + + +#checkoutContentPanel .form-additionals{ +} + + +#checkoutContentPanel .form-additionals .control-group{ + width:100%; +} + + +#checkoutContentPanel .form-additionals button{ + clear:both; + + width:50%; +} + + + + + + + + + + + + + + +#savedAddressListHolder, +#savedPaymentListHolder{ + display:none; +} + + + + + + + + + +/* +simplifyPickupPanel +*/ + +.simplifyPickupPanel{ + border: 1px dotted #A5A5A5; + padding:0 20px 20px 20px; + margin:0 0 20px 0; + position:relative; + background:#F6F6F6; +} + +.simplifyPickupPanel .headline{ + border-bottom: 1px dotted #A5A5A5; + font-size: 1em; + font-weight: bold; + line-height: 17px; + padding-bottom: 5px; + margin:10px 0 20px 0; +} + + + +.simplifyPickupPanel .description{ + margin:0 0 20px 0; +} + +.simplifyPickupPanel .content span{ + display:block; + font-weight:normal; +} + +.simplifyPickupPanel .content span.strong{ + + font-weight:bold; +} + +.simplifyPickupPanel .content input{ + float:left; +} + +.simplifyPickupPanel .content span.pickupAdressList{ + margin:0 0 0 30px; +} + + +.selectDeliverylocationItemLabel{} + + +.simplifyPickupPanel .footline{ + clear:both; + margin:20px 0 0 0; + padding:5px 0 0 0; + border-top: 1px dotted #A5A5A5; + +} + +.simplifyPickupPanel .footlineText{ + float:left; + width:50%; + padding:8px 0 0 0; + +} + +#checkoutContentPanel .control-group.security{ + width:150px; + margin:20px 0 0 0; +} + + +#checkoutContentPanel input.security{ + width:50px; + float:left; +} +#checkoutContentPanel .security_code_what{ + float:left; + display:block; + margin:7px; + line-height:30px; +} + + + + + + +fieldset.cardDate{ + width:244px; + float:left; + margin:0 20px 0 0; +} + +fieldset.cardDate legend{ + border: 0; + font-size: 14px; + font-weight: normal; + line-height: 20px; + margin: 0 0 5px; + overflow: hidden; + white-space: nowrap; + width: 244px; +} + +fieldset.cardDate label{ + display:none; +} + +#checkoutContentPanel fieldset.cardDate .control-group{ + width:111px ; + margin:0 0 0 20px; +} + +#checkoutContentPanel fieldset.cardDate legend + .control-group{ + margin:0; +} + + + + + + + +#checkoutContentPanel .summaryDeliveryAddress, +#checkoutContentPanel .summaryDeliveryMode, +#checkoutContentPanel .summaryPayment{ + position:relative; + padding: 0 0 20px 0; +} + +#checkoutContentPanel .editButton{ + position:absolute; + right:0; + bottom:20px; + margin:0; +} + + + +#checkoutContentPanel hr{ + background:0; + border:0; + border-bottom: 1px dotted #A5A5A5; + margin:0 0 20px 0; +} + + +#checkoutContentPanel.summaryFlow{ + padding: 0 20px; +} + +#checkoutContentPanel.summaryFlow strong{ + margin:0 0 5px 0; + display:block; +} + + + + + +/* +#summaryDeliveryAddressOverlay .description{ + margin:0 0 20px 0; +}*/ + + +.summaryOverlay { + padding:20px; +} + + +.summaryOverlay .headline{ + border-bottom: 1px dotted #A5A5A5; + font-size: 1.2em; + font-weight: bold; + height: 39px; + line-height: 39px; + text-transform: uppercase; + margin:0 0 20px 0; +} + + +.summaryOverlay .description{ + margin:0 0 20px 0; +} + + + + +.summaryOverlay form{ + + margin-right:-20px; +} + +.summaryOverlay .control-group{ + float:left; + width:387px; + margin-right:20px; +} + + +.summaryOverlay .form-actions{ + +} + + + +.summaryOverlay #summaryDeliveryAddressBook{ + display:none; +} + + + + +.summaryPaymentOverlay form{ + margin:0; +} + + + + + + + +.summaryOverlay fieldset.cardDate{ + width:387px; + float:left; + margin:0 20px 0 0; +} + +.summaryOverlay fieldset.cardDate legend{ + border: 0; + font-size: 14px; + font-weight: normal; + line-height: 20px; + margin: 0 0 5px; + overflow: hidden; + white-space: nowrap; + width: 387px; +} + + + + + + + +.summaryOverlay fieldset.cardDate .control-group{ + width:183px ; + margin:0 0 0 20px; +} + +.summaryOverlay fieldset.cardDate legend + .control-group{ + margin:0; +} + + +.summaryOverlay fieldset.cardDate .control-group select{ + margin-top:2px; +} + + +#summaryDeliveryAddressBook .addressList{ + + margin:0 -20px 0 0; +} + + + +#summaryDeliveryAddressBook .addressEntry{ + float:left; + width:387px; + margin:0 20px 20px 0; + border-bottom: 1px dotted #A5A5A5; + padding: 0 0 20px 0; +} + +#summaryDeliveryAddressBook .addressEntry.default{ + background:#f8f8f8; +} + + +#summaryDeliveryAddressBook .addressEntry button{ + float:none; + +} + + + +#savedAddressList .addressList{ + + margin:0 -20px 0 0; +} + + + +#savedAddressList .addressEntry{ + float:left; + width:387px; + margin:0 20px 20px 0; + border-bottom: 1px dotted #A5A5A5; + padding: 0 0 20px 0; +} + +#savedAddressList .addressEntry.default{ + background:#f8f8f8; +} + + +#savedAddressList .addressEntry button{ + float:none; + +} + + + + +#savedPaymentList .paymentList{ + + margin:0 -20px 0 0; + max-height: 350px; + overflow: auto; +} + + + +#savedPaymentList .paymentEntry{ + float:left; + width:387px; + margin:0 20px 20px 0; + border-bottom: 1px dotted #A5A5A5; + padding: 0 0 20px 0; +} + + + + +#savedPaymentList .paymentEntry ul{ + float:left; +} + +#savedPaymentList .paymentEntry form{ + clear:right; +} + +#savedPaymentList .paymentEntry button{ + margin: 0 20px 20px 20px; + +} + +button.place-order { + font-size: 140%; + margin-top: 0; +} + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutOrderDetails.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutOrderDetails.css new file mode 100644 index 000000000..d418dd310 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutOrderDetails.css @@ -0,0 +1,106 @@ +/* +## checkoutOrderDetails +********************************************************************/ + + +#checkoutOrderDetails .deliveryCartItems{ + width:100%; + margin:40px 0 ; +} + +#checkoutOrderDetails .deliveryCartItems thead td{ + border-bottom:1px solid #a5a5a5; + height:30px; + line-height:30px; + text-transform:uppercase; + font-weight:bold; + font-size:1.2em; + padding-left: 5px; + background-color: #f6f6f6; +} + +#checkoutOrderDetails .deliveryCartItems .thumb{ + width:50px; + padding:20px 10px 0 0; + vertical-align:top; +} + +#checkoutOrderDetails .deliveryCartItems .thumb img { + width:50px; +} + +#checkoutOrderDetails .deliveryCartItems .desc{ + vertical-align:top; + padding:20px 0 0 0; +} + +#checkoutOrderDetails .deliveryCartItems .name{ + font-weight:bold; +} + + +#checkoutOrderDetails .deliveryCartItems .priceRow{ + width:33%; + border-bottom:1px dotted #a5a5a5; +} + +#checkoutOrderDetails .pickupCartItems{ + margin:40px 0 ; +} + +.pickupCartItems{ + width:100%; +} + +.pickupCartItems thead td{ + border-bottom:1px solid #a5a5a5; + height:30px; + line-height:30px; + text-transform:uppercase; + font-weight:bold; + font-size:1.2em; + padding-left: 5px; + background-color: #f6f6f6; +} + + +.pickupCartItems .address td{ + border-bottom:1px dotted #a5a5a5; + padding:10px 0; +} + +.pickupCartItems .address .storeName{ + font-weight:bold; +} + + +.pickupCartItems .thumb{ + width:50px; + padding:20px 10px 0 0; + vertical-align:top; +} + +.pickupCartItems .thumb img{ + width:50px; +} + +.pickupCartItems .desc{ + vertical-align:top; + padding:20px 0 0 0; +} + +.pickupCartItems .name{ + font-weight:bold; +} + + + + +.pickupCartItems .priceRow{ + width:33%; + border-bottom:1px dotted #a5a5a5; +} + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutProgress.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutProgress.css new file mode 100644 index 000000000..ba75b0caa --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/css/checkoutProgress.css @@ -0,0 +1,59 @@ +/* +## checkoutProgress +********************************************************************/ + + +#checkoutProgress{ + margin:0 0 20px 0; + height:30px; + background:#eee; +} + +#checkoutProgress li.step{ + float:left; + background:#eee; + height:30px; + line-height:30px; + +} + +#checkoutProgress.steps-1 li.step{width:100%;} +#checkoutProgress.steps-2 li.step{width:50%;} +#checkoutProgress.steps-3 li.step{width:33%;} +#checkoutProgress.steps-4 li.step{width:25%;} +#checkoutProgress.steps-5 li.step{width:20%;} +#checkoutProgress.steps-6 li.step{width:16%;} +#checkoutProgress.steps-7 li.step{width:14%;} +#checkoutProgress.steps-8 li.step{width:12.5%;} +#checkoutProgress.steps-9 li.step{width:11%;} +#checkoutProgress.steps-10 li.step{width:10%;} + + +#checkoutProgress li.step a{ + display:block; + text-align:center; + color:inherit; +} + + +#checkoutProgress li.step.visited{ + +} + +#checkoutProgress li.step.active{ + color:#fff; + background:#333; +} + + + +#checkoutProgress li.step.disabled{ + color: #999; +} + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/images/AddImagesHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/images/AddImagesHere.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutaddress.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutaddress.js new file mode 100644 index 000000000..d6ee42a6f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutaddress.js @@ -0,0 +1,57 @@ + +ACC.checkoutaddress = { + + spinner: $(""), + addressID: '', + + showAddressBook: function () + { + $(document).on("click", "#viewAddressBook", function () + { + var data = $("#savedAddressListHolder").html(); + $.colorbox({ + + height: false, + html: data, + onComplete: function () + { + + $(this).colorbox.resize(); + } + }); + + }) + }, + + showRemoveAddressConfirmation: function () + { + $(document).on("click", ".removeAddressButton", function () + { + var addressId = $(this).data("addressId"); + $.colorbox({ + inline: true, + height: false, + href: "#popup_confirm_address_removal_" + addressId, + onComplete: function () + { + + $(this).colorbox.resize(); + } + }); + + }) + } +} + +// Address Verification +$(document).ready(function () +{ + with (ACC.checkoutaddress) + { + + showAddressBook(); + showRemoveAddressConfirmation(); + } +}); + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutcartdetails.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutcartdetails.js new file mode 100644 index 000000000..78a897a86 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutcartdetails.js @@ -0,0 +1,31 @@ +ACC.checkoutcartdetails = { + + bindAll: function () + { + this.bindCheckCartDetails(); + }, + + bindCheckCartDetails: function () + { + $("#checkout-cart-details").hide(); + + $("#checkout-cart-details-btn").click(function (e) + { + e.preventDefault(); + $("#checkout-cart-details").toggle(); + if ($("#checkout-cart-details").is(":visible")) + { + $("#checkout-cart-details-btn").html(hideText); + } + else + { + $("#checkout-cart-details-btn").html(showText); + } + }); + } +}; + +$(document).ready(function () +{ + ACC.checkoutcartdetails.bindAll(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutpickupdetails.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutpickupdetails.js new file mode 100644 index 000000000..3e665b65c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.checkoutpickupdetails.js @@ -0,0 +1,31 @@ +ACC.checkoutpickupdetails = { + + bindAll: function () + { + this.bindPickupDetails(); + }, + + bindPickupDetails: function () + { + $(".pickupSummaryDetail").hide(); + + $(".pickupSummaryDetailsButton").click(function (e) + { + e.preventDefault(); + $(this).parent().children(".pickupSummaryDetail").toggle(); + if ($(this).parent().children(".pickupSummaryDetail").is(":visible")) + { + $(this).html(hideText); + } + else + { + $(this).html(showText); + } + }); + } +}; + +$(document).ready(function () +{ + ACC.checkoutpickupdetails.bindAll(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.deliverymodedescription.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.deliverymodedescription.js new file mode 100644 index 000000000..ff385b4d5 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.deliverymodedescription.js @@ -0,0 +1,24 @@ +ACC.deliverydescription = { + + bindAll: function () + { + this.bindDeliveryModeDes(); + }, + bindDeliveryModeDes: function () + { + + var str = $(".deliverymode-description").text(); + if (str.length > 180) + { + str = str.substr(0, 180) + '…'; + } + $(".deliverymode-description").html(str); + + } + +}; + +$(document).ready(function () +{ + ACC.deliverydescription.bindAll(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.hopdebug.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.hopdebug.js new file mode 100644 index 000000000..79223ae29 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.hopdebug.js @@ -0,0 +1,23 @@ +ACC.hopdebug = { + + bindAll: function () + { + this.bindShowDebugMode(); + }, + + bindShowDebugMode: function () + { + var debugModeEnabled = $('#hopDebugMode').data("hopDebugMode"); + + if (!debugModeEnabled && !$('#showDebugPage').attr('value')) + { + $('#hostedOrderPagePostForm').submit(); + } + } +}; + + +$(document).ready(function () +{ + ACC.hopdebug.bindAll(); +}); \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.payment.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.payment.js new file mode 100644 index 000000000..7b495c388 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.payment.js @@ -0,0 +1,86 @@ +ACC.payment = { + + bindUseThisSavedCardButton: function () + { + $(document).on("click",'.use_this_saved_card_button', function () + { + var paymentId = $(this).attr('data-payment'); + $.postJSON(setPaymentDetailsUrl, {paymentId: paymentId}, ACC.payment.handleSelectSavedCardSuccess); + return false; + }); + }, + + handleSelectSavedCardSuccess: function (data) + { + if (data != null) + { + ACC.refresh.refreshPage(data); + + parent.$.colorbox.close(); + } + else + { + alert("Failed to set payment details"); + } + }, + + refreshPaymentDetailsSection: function (data) + { + $('.summaryPayment').replaceWith($('#paymentSummaryTemplate').tmpl(data)); + + //bind edit payment details button + if (!typeof bindSecurityCodeWhatIs == 'undefined') + bindSecurityCodeWhatIs(); + }, + + showSavedPayments: function () + { + $(document).on("click","#viewSavedPayments",function(){ + var data = $("#savedPaymentListHolder").html(); + $.colorbox({ + + height: false, + html: data, + onComplete: function () + { + + $(this).colorbox.resize(); + } + }); + + }) + + + }, + + bindPaymentCardTypeSelect: function () + { + $("#card_cardType").change(function () + { + var cardType = $(this).val(); + if (cardType == '024') + { + $('#startDate, #issueNum').show(); + } + else + { + $('#startDate, #issueNum').hide(); + } + }); + } +} + + +$(document).ready(function () +{ + ACC.payment.bindPaymentCardTypeSelect(); + ACC.payment.showSavedPayments(); + if (!typeof bindSecurityCodeWhatIs == 'undefined') + { + bindSecurityCodeWhatIs(); + } +}); + + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.placeorder.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.placeorder.js new file mode 100644 index 000000000..71966557f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.placeorder.js @@ -0,0 +1,51 @@ +ACC.placeorder = { + + bindAll: function () + { + this.bindPlaceOrder(); + this.updatePlaceOrderButton(); + this.bindSecurityCodeWhatIs(); + }, + + bindPlaceOrder: function () + { + $(".placeOrderWithSecurityCode").on("click", function (e) + { + ACC.common.blockFormAndShowProcessingMessage($(this)); + if($("#hppForm").attr('action') && $('#Terms1').is(':checked')){ + $("#hppForm").submit(); + e.preventDefault(); + }else{ + $(".securityCodeClass").val($("#SecurityCode").val()); + $("#placeOrderForm1").submit(); + } + }); + }, + + updatePlaceOrderButton: function () + { + + $(".place-order").removeAttr("disabled"); + // need rewrite / class changes + }, + + bindSecurityCodeWhatIs: function () + { + $('.security_code_what').bt($("#checkout_summary_payment_div").data("securityWhatText"), + { + trigger: 'click', + positions: 'bottom', + fill: '#efefef', + cssStyles: { + fontSize: '11px' + } + }); + } +}; + +$(document).ready(function () +{ + ACC.placeorder.bindAll(); +}); + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.removepaymentdetails.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.removepaymentdetails.js new file mode 100644 index 000000000..b65603a86 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.removepaymentdetails.js @@ -0,0 +1,25 @@ +ACC.removepayment = { + + bindAll: function () + { + this.bindRemovePaymentDetails(); + }, + + bindRemovePaymentDetails: function () + { + $('.submitRemove').on("click", function () + { + $('#removePaymentDetails' + $(this).attr('id')).submit(); + }); + $('.submitSetDefault').on("click", function () + { + $('#setDefaultPaymentDetails' + $(this).attr('id')).submit(); + }); + } + +}; + +$(document).ready(function () +{ + ACC.removepayment.bindAll(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.silentorderpost.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.silentorderpost.js new file mode 100644 index 000000000..6ae4029aa --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.silentorderpost.js @@ -0,0 +1,148 @@ +ACC.silentorderpost = { + + spinner: $(""), + + bindUseDeliveryAddress: function () + { + $('#useDeliveryAddress').on('change', function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + var options = {'countryIsoCode': $('#useDeliveryAddress').data('countryisocode'), 'useDeliveryAddress': true}; + ACC.silentorderpost.enableAddressForm(); + ACC.silentorderpost.displayCreditCardAddressForm(options, ACC.silentorderpost.useDeliveryAddressSelected); + ACC.silentorderpost.disableAddressForm(); + } + else + { + ACC.silentorderpost.clearAddressForm(); + ACC.silentorderpost.enableAddressForm(); + } + }); + + if ($('#useDeliveryAddress').is(":checked")) + { + ACC.silentorderpost.disableAddressForm(); + } + }, + + bindSubmitSilentOrderPostForm: function () + { + $('.submit_silentOrderPostForm').click(function () + { + ACC.common.blockFormAndShowProcessingMessage($(this)); + $('.billingAddressForm').filter(":hidden").remove(); + ACC.silentorderpost.enableAddressForm(); + $('#silentOrderPostForm').submit(); + }); + }, + + bindCycleFocusEvent: function () + { + $('#lastInTheForm').blur(function () + { + $('#silentOrderPostForm [tabindex$="10"]').focus(); + }) + }, + + isEmpty: function (obj) + { + if (typeof obj == 'undefined' || obj === null || obj === '') return true; + return false; + }, + + disableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', true); + $('select[id^="address\\."]').prop('disabled', true); + }, + + enableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', false); + $('select[id^="address\\."]').prop('disabled', false); + }, + + clearAddressForm: function () + { + $('input[id^="address\\."]').val(""); + $('select[id^="address\\."]').val(""); + }, + + useDeliveryAddressSelected: function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + $('#address\\.country').val($('#useDeliveryAddress').data('countryisocode')); + ACC.silentorderpost.disableAddressForm(); + } + else + { + ACC.silentorderpost.clearAddressForm(); + ACC.silentorderpost.enableAddressForm(); + } + }, + + displayStartDateIssueNum: function () + { + var cardType = $('#silentOrderPostForm [tabindex="1"]').val(); + if (cardType == 'maestro' || cardType == 'switch') + { + $('#startDate').removeAttr('hidden'); + $('#issueNum').removeAttr('hidden'); + } + else + { + $('#startDate').attr('hidden', 'true'); + $('#issueNum').attr('hidden', 'true'); + } + }, + + bindCreditCardAddressForm: function () + { + $('#billingCountrySelector :input').on("change", function () + { + var countrySelection = $(this).val(); + var options = { + 'countryIsoCode': countrySelection, + 'useDeliveryAddress': false + }; + ACC.silentorderpost.displayCreditCardAddressForm(options); + }) + }, + + displayCreditCardAddressForm: function (options, callback) + { + $.ajax({ + url: ACC.config.encodedContextPath + '/checkout/multi/sop/billingaddressform', + async: true, + data: options, + dataType: "html", + beforeSend: function () + { + $('#billingAddressForm').html(ACC.silentorderpost.spinner); + } + }).done(function (data) + { + $("#billingAddressForm").html($(data).html()); + if (typeof callback == 'function') + { + callback.call(); + } + }); + } +} + +$(document).ready(function () +{ + with (ACC.silentorderpost) + { + $('#silentOrderPostForm [tabindex="1"]').change(function () + { + displayStartDateIssueNum(); + }); + bindUseDeliveryAddress() + bindSubmitSilentOrderPostForm(); + bindCreditCardAddressForm(); + } +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.termsandconditions.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.termsandconditions.js new file mode 100644 index 000000000..f93052b20 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.termsandconditions.js @@ -0,0 +1,23 @@ +ACC.termsandconditions = { + + bindTermsAndConditionsLink: function() { + $('.termsAndConditionsLink').click(function(e) { + e.preventDefault(); + $.colorbox({ + href: $(this).attr("href"), + onComplete: function() { + ACC.common.refreshScreenReaderBuffer(); + }, + onClosed: function() { + ACC.common.refreshScreenReaderBuffer(); + } + }); + }); + } +} + +$(document).ready(function(){ + with(ACC.termsandconditions) { + bindTermsAndConditionsLink(); + } +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.updatebillingaddress.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.updatebillingaddress.js new file mode 100644 index 000000000..5e1faf182 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/acc.updatebillingaddress.js @@ -0,0 +1,47 @@ +ACC.updatebillingaddress = { + bindCycleFocusEvent: function () + { + $('#lastInTheForm').blur(function () + { + $('#paymentDetailsForm [tabindex$="10"]').focus(); + }) + }, + + updateBillingAddressForm: function () + { + var newAddress = $('#differentAddress').attr("checked"); + if (newAddress) + { + $("#newBillingAddressFields :input").removeAttr('disabled'); + } + else + { + $("#newBillingAddressFields :input").attr('disabled', 'disabled'); + } + } +} + +$(document).ready(function () +{ + ACC.updatebillingaddress.updateBillingAddressForm(); + ACC.silentorderpost.displayStartDateIssueNum(); + + if ($("#differentAddress").length > 0) + { + $("#differentAddress").click(function () + { + ACC.updatebillingaddress.updateBillingAddressForm(); + }) + } + else + { + $("#newBillingAddressFields :input").removeAttr('disabled'); + } + + $('#paymentDetailsForm [tabindex="1"]').change(function () + { + ACC.silentorderpost.displayStartDateIssueNum(); + }); + + ACC.updatebillingaddress.bindCycleFocusEvent(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.min.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.min.js new file mode 100644 index 000000000..cc0b935ce --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.min.js @@ -0,0 +1,15 @@ +/* + * + * Client Encryption of Forms. + * + * Includes: + * * RSA and ECC in JavaScript | http://www-cs-students.stanford.edu/~tjw/jsbn/ + * * Stanford Javascript Crypto Library | http://crypto.stanford.edu/sjcl/ + * * JSON in JavaScript | http://www.JSON.org/ + * + * Version: 0_1_13 + * Author: ADYEN (c) 2014 + */ +(function(root,fnDefine){var define,exports;(function(){try{var b=[new Uint8Array(1),new Uint32Array(1),new Int32Array(1)];return}catch(g){}function f(e,a){return this.slice(e,a)}function c(j,e){if(arguments.length<2){e=0}for(var a=0,h=j.length;a>2,b=((k&3)<<4)|(j>>4);var m=f+1>6):64;var l=f+2>6)+b64map.charAt(e&63)}if(b+1==d.length){e=parseInt(d.substring(b,b+1),16);a+=b64map.charAt(e<<2)}else{if(b+2==d.length){e=parseInt(d.substring(b,b+2),16);a+=b64map.charAt(e>>2)+b64map.charAt((e&3)<<4)}}while((a.length&3)>0){a+=b64padchar}return a}function b64tohex(e){var c="";var d;var a=0;var b;for(d=0;d>2);b=v&3;a=1}else{if(a==1){c+=int2char((b<<2)|(v>>4));b=v&15;a=2}else{if(a==2){c+=int2char(b);c+=int2char(v>>2);b=v&3;a=3}else{c+=int2char((b<<2)|(v>>4));c+=int2char(v&15);a=0}}}}if(a==1){c+=int2char(b<<2)}return c}function b64toBA(e){var d=b64tohex(e);var c;var b=new Array();for(c=0;2*c=0){var d=a*this[f++]+b[e]+h;h=Math.floor(d/67108864);b[e++]=d&67108863}return h}function am2(f,q,r,e,o,a){var k=q&32767,p=q>>15;while(--a>=0){var d=this[f]&32767;var g=this[f++]>>15;var b=p*d+g*k;d=k*d+((b&32767)<<15)+r[e]+(o&1073741823);o=(d>>>30)+(b>>>15)+p*g+(o>>>30);r[e++]=d&1073741823}return o}function am3(f,q,r,e,o,a){var k=q&16383,p=q>>14;while(--a>=0){var d=this[f]&16383;var g=this[f++]>>14;var b=p*d+g*k;d=k*d+((b&16383)<<14)+r[e]+o;o=(d>>28)+(b>>14)+p*g;r[e++]=d&268435455}return o}if(j_lm&&(navigator.appName=="Microsoft Internet Explorer")){BigInteger.prototype.am=am2;dbits=30}else{if(j_lm&&(navigator.appName!="Netscape")){BigInteger.prototype.am=am1;dbits=26}else{BigInteger.prototype.am=am3;dbits=28}}BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=((1<=0;--a){b[a]=this[a]}b.t=this.t;b.s=this.s}function bnpFromInt(a){this.t=1;this.s=(a<0)?-1:0;if(a>0){this[0]=a}else{if(a<-1){this[0]=a+this.DV}else{this.t=0}}}function nbv(a){var b=nbi();b.fromInt(a);return b}function bnpFromString(h,c){var e;if(c==16){e=4}else{if(c==8){e=3}else{if(c==256){e=8}else{if(c==2){e=1}else{if(c==32){e=5}else{if(c==4){e=2}else{this.fromRadix(h,c);return}}}}}}this.t=0;this.s=0;var g=h.length,d=false,f=0;while(--g>=0){var a=(e==8)?h[g]&255:intAt(h,g);if(a<0){if(h.charAt(g)=="-"){d=true}continue}d=false;if(f==0){this[this.t++]=a}else{if(f+e>this.DB){this[this.t-1]|=(a&((1<<(this.DB-f))-1))<>(this.DB-f))}else{this[this.t-1]|=a<=this.DB){f-=this.DB}}if(e==8&&(h[0]&128)!=0){this.s=-1;if(f>0){this[this.t-1]|=((1<<(this.DB-f))-1)<0&&this[this.t-1]==a){--this.t}}function bnToString(c){if(this.s<0){return"-"+this.negate().toString(c)}var e;if(c==16){e=4}else{if(c==8){e=3}else{if(c==2){e=1}else{if(c==32){e=5}else{if(c==4){e=2}else{return this.toRadix(c)}}}}}var g=(1<0){if(j>j)>0){a=true;h=int2char(l)}while(f>=0){if(j>(j+=this.DB-e)}else{l=(this[f]>>(j-=e))&g;if(j<=0){j+=this.DB;--f}}if(l>0){a=true}if(a){h+=int2char(l)}}}return a?h:"0"}function bnNegate(){var a=nbi();BigInteger.ZERO.subTo(this,a);return a}function bnAbs(){return(this.s<0)?this.negate():this}function bnCompareTo(b){var d=this.s-b.s;if(d!=0){return d}var c=this.t;d=c-b.t;if(d!=0){return(this.s<0)?-d:d}while(--c>=0){if((d=this[c]-b[c])!=0){return d}}return 0}function nbits(a){var c=1,b;if((b=a>>>16)!=0){a=b;c+=16}if((b=a>>8)!=0){a=b;c+=8}if((b=a>>4)!=0){a=b;c+=4}if((b=a>>2)!=0){a=b;c+=2}if((b=a>>1)!=0){a=b;c+=1}return c}function bnBitLength(){if(this.t<=0){return 0}return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM))}function bnpDLShiftTo(c,b){var a;for(a=this.t-1;a>=0;--a){b[a+c]=this[a]}for(a=c-1;a>=0;--a){b[a]=0}b.t=this.t+c;b.s=this.s}function bnpDRShiftTo(c,b){for(var a=c;a=0;--d){e[d+f+1]=(this[d]>>a)|h;h=(this[d]&g)<=0;--d){e[d]=0}e[f]=h;e.t=this.t+f+1;e.s=this.s;e.clamp()}function bnpRShiftTo(g,d){d.s=this.s;var e=Math.floor(g/this.DB);if(e>=this.t){d.t=0;return}var b=g%this.DB;var a=this.DB-b;var f=(1<>b;for(var c=e+1;c>b}if(b>0){d[this.t-e-1]|=(this.s&f)<>=this.DB}if(d.t>=this.DB}g+=this.s}else{g+=this.s;while(e>=this.DB}g-=d.s}f.s=(g<0)?-1:0;if(g<-1){f[e++]=this.DV+g}else{if(g>0){f[e++]=g}}f.t=e;f.clamp()}function bnpMultiplyTo(c,e){var b=this.abs(),f=c.abs();var d=b.t;e.t=d+f.t;while(--d>=0){e[d]=0}for(d=0;d=0){d[b]=0}for(b=0;b=a.DV){d[b+a.t]-=a.DV;d[b+a.t+1]=1}}if(d.t>0){d[d.t-1]+=a.am(b,a[b],d,2*b,0,1)}d.s=0;d.clamp()}function bnpDivRemTo(n,h,g){var w=n.abs();if(w.t<=0){return}var k=this.abs();if(k.t0){w.lShiftTo(v,d);k.lShiftTo(v,g)}else{w.copyTo(d);k.copyTo(g)}var p=d.t;var b=d[p-1];if(b==0){return}var o=b*(1<1)?d[p-2]>>this.F2:0);var A=this.FV/o,z=(1<=0){g[g.t++]=1;g.subTo(f,g)}BigInteger.ONE.dlShiftTo(p,f);f.subTo(d,d);while(d.t=0){var c=(g[--u]==b)?this.DM:Math.floor(g[u]*A+(g[u-1]+x)*z);if((g[u]+=d.am(0,c,g,s,0,p))0){g.rShiftTo(v,g)}if(a<0){BigInteger.ZERO.subTo(g,g)}}function bnMod(b){var c=nbi();this.abs().divRemTo(b,null,c);if(this.s<0&&c.compareTo(BigInteger.ZERO)>0){b.subTo(c,c)}return c}function Classic(a){this.m=a}function cConvert(a){if(a.s<0||a.compareTo(this.m)>=0){return a.mod(this.m)}else{return a}}function cRevert(a){return a}function cReduce(a){a.divRemTo(this.m,null,a)}function cMulTo(a,c,b){a.multiplyTo(c,b);this.reduce(b)}function cSqrTo(a,b){a.squareTo(b);this.reduce(b)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1){return 0}var a=this[0];if((a&1)==0){return 0}var b=a&3;b=(b*(2-(a&15)*b))&15;b=(b*(2-(a&255)*b))&255;b=(b*(2-(((a&65535)*b)&65535)))&65535;b=(b*(2-a*b%this.DV))%this.DV;return(b>0)?this.DV-b:-b}function Montgomery(a){this.m=a;this.mp=a.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<(a.DB-15))-1;this.mt2=2*a.t}function montConvert(a){var b=nbi();a.abs().dlShiftTo(this.m.t,b);b.divRemTo(this.m,null,b);if(a.s<0&&b.compareTo(BigInteger.ZERO)>0){this.m.subTo(b,b)}return b}function montRevert(a){var b=nbi();a.copyTo(b);this.reduce(b);return b}function montReduce(a){while(a.t<=this.mt2){a[a.t++]=0}for(var c=0;c>15)*this.mpl)&this.um)<<15))&a.DM;b=c+this.m.t;a[b]+=this.m.am(0,d,a,c,0,this.m.t);while(a[b]>=a.DV){a[b]-=a.DV;a[++b]++}}a.clamp();a.drShiftTo(this.m.t,a);if(a.compareTo(this.m)>=0){a.subTo(this.m,a)}}function montSqrTo(a,b){a.squareTo(b);this.reduce(b)}function montMulTo(a,c,b){a.multiplyTo(c,b);this.reduce(b)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return((this.t>0)?(this[0]&1):this.s)==0}function bnpExp(h,j){if(h>4294967295||h<1){return BigInteger.ONE}var f=nbi(),a=nbi(),d=j.convert(this),c=nbits(h)-1;d.copyTo(f);while(--c>=0){j.sqrTo(f,a);if((h&(1<0){j.mulTo(a,d,f)}else{var b=f;f=a;a=b}}return j.revert(f)}function bnModPowInt(b,a){var c;if(b<256||a.isEven()){c=new Classic(a)}else{c=new Montgomery(a)}return this.exp(b,c)}BigInteger.prototype.copyTo=bnpCopyTo;BigInteger.prototype.fromInt=bnpFromInt;BigInteger.prototype.fromString=bnpFromString;BigInteger.prototype.clamp=bnpClamp;BigInteger.prototype.dlShiftTo=bnpDLShiftTo;BigInteger.prototype.drShiftTo=bnpDRShiftTo;BigInteger.prototype.lShiftTo=bnpLShiftTo;BigInteger.prototype.rShiftTo=bnpRShiftTo;BigInteger.prototype.subTo=bnpSubTo;BigInteger.prototype.multiplyTo=bnpMultiplyTo;BigInteger.prototype.squareTo=bnpSquareTo;BigInteger.prototype.divRemTo=bnpDivRemTo;BigInteger.prototype.invDigit=bnpInvDigit;BigInteger.prototype.isEven=bnpIsEven;BigInteger.prototype.exp=bnpExp;BigInteger.prototype.toString=bnToString;BigInteger.prototype.negate=bnNegate;BigInteger.prototype.abs=bnAbs;BigInteger.prototype.compareTo=bnCompareTo;BigInteger.prototype.bitLength=bnBitLength;BigInteger.prototype.mod=bnMod;BigInteger.prototype.modPowInt=bnModPowInt;BigInteger.ZERO=nbv(0);BigInteger.ONE=nbv(1);function Arcfour(){this.i=0;this.j=0;this.S=new Array}function ARC4init(c){var a,d,b;for(a=0;a<256;++a){this.S[a]=a}d=0;for(a=0;a<256;++a){d=d+this.S[a]+c[a%c.length]&255;b=this.S[a];this.S[a]=this.S[d];this.S[d]=b}this.i=0;this.j=0}function ARC4next(){var a;this.i=this.i+1&255;this.j=this.j+this.S[this.i]&255;a=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=a;return this.S[a+this.S[this.i]&255]}function prng_newstate(){return new Arcfour}Arcfour.prototype.init=ARC4init;Arcfour.prototype.next=ARC4next;var rng_psize=256;var rng_state;var rng_pool;var rng_pptr;function rng_seed_int(a){rng_pool[rng_pptr++]^=a&255;rng_pool[rng_pptr++]^=(a>>8)&255;rng_pool[rng_pptr++]^=(a>>16)&255;rng_pool[rng_pptr++]^=(a>>24)&255;if(rng_pptr>=rng_psize){rng_pptr-=rng_psize}}function rng_seed_time(){rng_seed_int(new Date().getTime())}if(rng_pool==null){rng_pool=[];rng_pptr=0;var t;try{if(window.crypto&&window.crypto.getRandomValues){var ua=new Uint8Array(32);window.crypto.getRandomValues(ua);for(t=0;t<32;++t){rng_pool[rng_pptr++]=ua[t]}}else{if(window.msCrypto&&window.msCrypto.getRandomValues){var ua=new Uint8Array(32);window.msCrypto.getRandomValues(ua);for(t=0;t<32;++t){rng_pool[rng_pptr++]=ua[t]}}else{if(window.crypto&&window.crypto.random){var z=window.crypto.random(32);for(t=0;t>>8;rng_pool[rng_pptr++]=t&255}rng_pptr=0;rng_seed_time()}function rng_get_byte(){if(rng_state==null){rng_seed_time();rng_state=prng_newstate();rng_state.init(rng_pool);for(rng_pptr=0;rng_pptr=0&&g>0){f[--g]=c[e--]}f[--g]=0;var d=new SecureRandom();var a=new Array();while(g>2){a[0]=0;while(a[0]==0){d.nextBytes(a)}f[--g]=a[0]}f[--g]=2;f[--g]=0;return new BigInteger(f)}function RSAKey(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null}function RSASetPublic(b,a){if(b!=null&&a!=null&&b.length>0&&a.length>0){this.n=parseBigInt(b,16);this.e=parseInt(a,16)}else{alert("Invalid RSA public key")}}function RSADoPublic(a){return a.modPowInt(this.e,this.n)}function RSAEncrypt(b){var a=pkcs1pad2(b,(this.n.bitLength()+7)>>3);if(a==null){return null}var e=this.doPublic(a);if(e==null){return null}var d=e.toString(16);if((d.length&1)==0){return d}else{return"0"+d}}function RSAEncryptB64(a){var b=this.encrypt(a);if(b){return hex2b64(b)}else{return null}}RSAKey.prototype.doPublic=RSADoPublic;RSAKey.prototype.setPublic=RSASetPublic;RSAKey.prototype.encrypt=RSAEncrypt;RSAKey.prototype.encrypt_b64=RSAEncryptB64;"use strict";function q(b){throw b}var t=void 0,u=!1;var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(b){this.toString=function(){return"CORRUPT: "+this.message};this.message=b},invalid:function(b){this.toString=function(){return"INVALID: "+this.message};this.message=b},bug:function(b){this.toString=function(){return"BUG: "+this.message};this.message=b},notReady:function(b){this.toString=function(){return"NOT READY: "+this.message};this.message=b}}};"undefined"!==typeof module&&module.exports&&(module.exports=sjcl);"function"===typeof define&&define([],function(){return sjcl});sjcl.cipher.aes=function(j){this.k[0][0][0]||this.D();var i,p,o,n,m=this.k[0][4],l=this.k[1];i=j.length;var k=1;4!==i&&(6!==i&&8!==i)&&q(new sjcl.exception.invalid("invalid aes key size"));this.b=[o=j.slice(0),n=[]];for(j=i;j<4*i+28;j++){p=o[j-1];if(0===j%i||8===i&&4===j%i){p=m[p>>>24]<<24^m[p>>16&255]<<16^m[p>>8&255]<<8^m[p&255],0===j%i&&(p=p<<8^p>>>24^k<<24,k=k<<1^283*(k>>7))}o[j]=o[j-i]^p}for(i=0;j;i++,j--){p=o[i&3?j:j-4],n[i]=4>=j||4>i?p:l[0][m[p>>>24]]^l[1][m[p>>16&255]]^l[2][m[p>>8&255]]^l[3][m[p&255]]}};sjcl.cipher.aes.prototype={encrypt:function(b){return y(this,b,0)},decrypt:function(b){return y(this,b,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var R=this.k[0],Q=this.k[1],P=R[4],O=Q[4],N,x,w,v=[],r=[],s,j,o,i;for(N=0;256>N;N++){r[(v[N]=N<<1^283*(N>>7))^N]=N}for(x=w=0;!P[x];x^=s||1,w=r[w]||1){o=w^w<<1^w<<2^w<<3^w<<4;o=o>>8^o&255^99;P[x]=o;O[o]=x;j=v[N=v[s=v[x]]];i=16843009*j^65537*N^257*s^16843008*x;j=257*v[o]^16843008*o;for(N=0;4>N;N++){R[N][x]=j=j<<24^j>>>8,Q[N][o]=i=i<<24^i>>>8}}for(N=0;5>N;N++){R[N]=R[N].slice(0),Q[N]=Q[N].slice(0)}}};function y(ab,aa,Z){4!==aa.length&&q(new sjcl.exception.invalid("invalid aes block size"));var Y=ab.b[Z],X=aa[0]^Y[0],W=aa[Z?3:1]^Y[1],V=aa[2]^Y[2];aa=aa[Z?1:3]^Y[3];var U,S,T,Q=Y.length/4-2,R,P=4,N=[0,0,0,0];U=ab.k[Z];ab=U[0];var O=U[1],o=U[2],j=U[3],i=U[4];for(R=0;R>>24]^O[W>>16&255]^o[V>>8&255]^j[aa&255]^Y[P],S=ab[W>>>24]^O[V>>16&255]^o[aa>>8&255]^j[X&255]^Y[P+1],T=ab[V>>>24]^O[aa>>16&255]^o[X>>8&255]^j[W&255]^Y[P+2],aa=ab[aa>>>24]^O[X>>16&255]^o[W>>8&255]^j[V&255]^Y[P+3],P+=4,X=U,W=S,V=T}for(R=0;4>R;R++){N[Z?3&-R:R]=i[X>>>24]<<24^i[W>>16&255]<<16^i[V>>8&255]<<8^i[aa&255]^Y[P++],U=X,X=W,W=V,V=aa,aa=U}return N}sjcl.bitArray={bitSlice:function(e,d,f){e=sjcl.bitArray.P(e.slice(d/32),32-(d&31)).slice(1);return f===t?e:sjcl.bitArray.clamp(e,f-d)},extract:function(f,e,h){var g=Math.floor(-e-h&31);return((e+h-1^e)&-32?f[e/32|0]<<32-g^f[e/32+1|0]>>>g:f[e/32|0]>>>g)&(1<>d-1,1));return e},partial:function(e,d,f){return 32===e?d:(f?d|0:d<<32-e)+1099511627776*e},getPartial:function(b){return Math.round(b/1099511627776)||32},equal:function(f,e){if(sjcl.bitArray.bitLength(f)!==sjcl.bitArray.bitLength(e)){return u}var h=0,g;for(g=0;g>>f),j=g[h]<<32-f}h=g.length?g[g.length-1]:0;g=sjcl.bitArray.getPartial(h);i.push(sjcl.bitArray.partial(f+g&31,32>>24|f>>>8&65280|(f&65280)<<8|f<<24}return e}};sjcl.codec.utf8String={fromBits:function(g){var f="",j=sjcl.bitArray.bitLength(g),i,h;for(i=0;i>>24),h<<=8}return decodeURIComponent(escape(f))},toBits:function(f){f=unescape(encodeURIComponent(f));var e=[],h,g=0;for(h=0;h>>n)>>>26),6>n?(l=j[p]<<6-n,n+=26,p++):(l<<=6,n-=6)}for(;o.length&3&&!i;){o+="="}return o},toBits:function(j,i){j=j.replace(/\s|=/g,"");var p=[],o,n=0,m=sjcl.codec.base64.J,l=0,k;i&&(m=m.substr(0,62)+"-_");for(o=0;ok&&q(new sjcl.exception.invalid("this isn't base64!")),26>>n),l=k<<32-n):(n+=6,l^=k<<32-n)}n&56&&p.push(sjcl.bitArray.partial(n&56,l,1));return p}};sjcl.codec.base64url={fromBits:function(b){return sjcl.codec.base64.fromBits(b,1,1)},toBits:function(b){return sjcl.codec.base64.toBits(b,1)}};sjcl.hash.sha256=function(b){this.b[0]||this.D();b?(this.r=b.r.slice(0),this.o=b.o.slice(0),this.h=b.h):this.reset()};sjcl.hash.sha256.hash=function(b){return(new sjcl.hash.sha256).update(b).finalize()};sjcl.hash.sha256.prototype={blockSize:512,reset:function(){this.r=this.N.slice(0);this.o=[];this.h=0;return this},update:function(e){"string"===typeof e&&(e=sjcl.codec.utf8String.toBits(e));var d,f=this.o=sjcl.bitArray.concat(this.o,e);d=this.h;e=this.h=d+sjcl.bitArray.bitLength(e);for(d=512+d&-512;d<=e;d+=512){z(this,f.splice(0,16))}return this},finalize:function(){var e,d=this.o,f=this.r,d=sjcl.bitArray.concat(d,[sjcl.bitArray.partial(1,1)]);for(e=d.length+2;e&15;e++){d.push(0)}d.push(Math.floor(this.h/4294967296));for(d.push(this.h|0);d.length;){z(this,d.splice(0,16))}this.reset(); +return f},N:[],b:[],D:function(){function f(b){return 4294967296*(b-Math.floor(b))|0}var e=0,h=2,g;f:for(;64>e;h++){for(g=2;g*g<=h;g++){if(0===h%g){continue f}}8>e&&(this.N[e]=f(Math.pow(h,0.5)));this.b[e]=f(Math.pow(h,1/3));e++}}};function z(V,U){var T,S,R,Q=U.slice(0),P=V.r,O=V.b,x=P[0],N=P[1],o=P[2],w=P[3],j=P[4],X=P[5],i=P[6],W=P[7];for(T=0;64>T;T++){16>T?S=Q[T]:(S=Q[T+1&15],R=Q[T+14&15],S=Q[T&15]=(S>>>7^S>>>18^S>>>3^S<<25^S<<14)+(R>>>17^R>>>19^R>>>10^R<<15^R<<13)+Q[T&15]+Q[T+9&15]|0),S=S+W+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(i^j&(X^i))+O[T],W=i,i=X,X=j,j=w+S|0,w=o,o=N,N=x,x=S+(N&o^w&(N^o))+(N>>>2^N>>>13^N>>>22^N<<30^N<<19^N<<10)|0}P[0]=P[0]+x|0;P[1]=P[1]+N|0;P[2]=P[2]+o|0;P[3]=P[3]+w|0;P[4]=P[4]+j|0;P[5]=P[5]+X|0;P[6]=P[6]+i|0;P[7]=P[7]+W|0}sjcl.mode.ccm={name:"ccm",encrypt:function(w,v,s,r,p){var o,n=v.slice(0),m=sjcl.bitArray,i=m.bitLength(s)/8,j=m.bitLength(n)/8;p=p||64;r=r||[];7>i&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes"));for(o=2;4>o&&j>>>8*o;o++){}o<15-i&&(o=15-i);s=m.clamp(s,8*(15-o));v=sjcl.mode.ccm.L(w,v,s,r,p,o);n=sjcl.mode.ccm.p(w,n,s,v,p,o);return m.concat(n.data,n.tag)},decrypt:function(w,v,s,r,p){p=p||64;r=r||[];var o=sjcl.bitArray,n=o.bitLength(s)/8,m=o.bitLength(v),i=o.clamp(v,m-p),j=o.bitSlice(v,m-p),m=(m-p)/8;7>n&&q(new sjcl.exception.invalid("ccm: iv must be at least 7 bytes"));for(v=2;4>v&&m>>>8*v;v++){}v<15-n&&(v=15-n);s=o.clamp(s,8*(15-v));i=sjcl.mode.ccm.p(w,i,s,j,p,v);w=sjcl.mode.ccm.L(w,i.data,s,r,p,v);o.equal(i.tag,w)||q(new sjcl.exception.corrupt("ccm: tag doesn't match"));return i.data},L:function(s,r,p,o,n,m){var k=[],j=sjcl.bitArray,i=j.l;n/=8;(n%2||4>n||16=p?k=[j.partial(16,p)]:4294967295>=p&&(k=j.concat([j.partial(16,65534)],[p]));k=j.concat(k,o);for(o=0;on.bitLength(p)&&(k=m(k,o(k)),p=n.concat(p,[-2147483648,0,0,0]));l=m(l,p);return j.encrypt(m(o(m(k,o(k))),l))},H:function(b){return[b[0]<<1^b[1]>>>31,b[1]<<1^b[2]>>>31,b[2]<<1^b[3]>>>31,b[3]<<1^135*(b[0]>>>31)]}};sjcl.mode.gcm={name:"gcm",encrypt:function(h,g,l,k,j){var i=g.slice(0);g=sjcl.bitArray;k=k||[];h=sjcl.mode.gcm.p(!0,h,i,k,l,j||128);return g.concat(h.data,h.tag)},decrypt:function(j,i,p,o,n){var m=i.slice(0),l=sjcl.bitArray,k=l.bitLength(m);n=n||128;o=o||[];n<=k?(i=l.bitSlice(m,k-n),m=l.bitSlice(m,0,k-n)):(i=m,m=[]);j=sjcl.mode.gcm.p(u,j,m,o,p,n);l.equal(j.tag,i)||q(new sjcl.exception.corrupt("gcm: tag doesn't match"));return j.data},Z:function(j,i){var p,o,n,m,l,k=sjcl.bitArray.l;n=[0,0,0,0];m=i.slice(0);for(p=0;128>p;p++){(o=0!==(j[Math.floor(p/32)]&1<<31-p%32))&&(n=k(n,m));l=0!==(m[3]&1);for(o=3;0>>1|(m[o-1]&1)<<31}m[0]>>>=1;l&&(m[0]^=-520093696)}return n},g:function(g,f,j){var i,h=j.length;f=f.slice(0);for(i=0;ih&&(g=f.hash(g));for(i=0;iv||0>w)&&q(sjcl.exception.invalid("invalid params to pbkdf2"));"string"===typeof N&&(N=sjcl.codec.utf8String.toBits(N));"string"===typeof x&&(x=sjcl.codec.utf8String.toBits(x));s=s||sjcl.misc.hmac;N=new s(N);var r,p,o,j,m=[],i=sjcl.bitArray;for(j=1;32*m.length<(v||1);j++){s=r=N.encrypt(i.concat(x,[j]));for(p=1;pj;j++){l.push(4294967296*Math.random()|0)}for(j=0;j=1<this.j&&(this.j=k);this.F++;this.b=sjcl.hash.sha256.hash(this.b.concat(l));this.A=new sjcl.cipher.aes(this.b);for(m=0;4>m&&!(this.f[m]=this.f[m]+1|0,this.f[m]);m++){}}for(m=0;m>>=1}}}this.c[k].update([o,this.C++,2,r,m,s.length].concat(s))}break;case"string":r===t&&(r=s.length);this.c[k].update([o,this.C++,3,r,m,s.length]);this.c[k].update(s);break;default:i=1}i&&q(new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string"));this.i[k]+=r;this.d+=r;j===this.m&&(this.isReady()!==this.m&&C("seeded",Math.max(this.j,this.d)),C("progress",this.getProgress()))},isReady:function(b){b=this.I[b!==t?b:this.B];return this.j&&this.j>=b?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=b?this.u|this.m:this.m},getProgress:function(b){b=this.I[b?b:this.B];return this.j>=b?1:this.d>b?1:this.d/b},startCollectors:function(){this.q||(this.a={loadTimeCollector:D(this,this.aa),mouseCollector:D(this,this.ba),keyboardCollector:D(this,this.$),accelerometerCollector:D(this,this.U)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,u),window.addEventListener("mousemove",this.a.mouseCollector,u),window.addEventListener("keypress",this.a.keyboardCollector,u),window.addEventListener("devicemotion",this.a.accelerometerCollector,u)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):q(new sjcl.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,u),window.removeEventListener("mousemove",this.a.mouseCollector,u),window.removeEventListener("keypress",this.a.keyboardCollector,u),window.removeEventListener("devicemotion",this.a.accelerometerCollector,u)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=u)},addEventListener:function(d,c){this.w[d][this.V++]=c},removeEventListener:function(h,g){var l,k,j=this.w[h],i=[];for(k in j){j.hasOwnProperty(k)&&j[k]===g&&i.push(k)}for(l=0;lc&&!(d.f[c]=d.f[c]+1|0,d.f[c]);c++){}return d.A.encrypt(d.f)}function D(d,c){return function(){c.apply(d,arguments)}}sjcl.random=new sjcl.prng(6);a:try{var F,G,H,I;if(I="undefined"!==typeof module){var J;if(J=module.exports){var K;try{K=require("crypto")}catch(L){K=null}J=(G=K)&&G.randomBytes}I=J}if(I){F=G.randomBytes(128),F=new Uint32Array((new Uint8Array(F)).buffer),sjcl.random.addEntropy(F,1024,"crypto['randomBytes']")}else{if("undefined"!==typeof window&&"undefined"!==typeof Uint32Array){H=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues){window.crypto.getRandomValues(H)}else{if(window.msCrypto&&window.msCrypto.getRandomValues){window.msCrypto.getRandomValues(H)}else{break a}}sjcl.random.addEntropy(H,1024,"crypto['getRandomValues']")}}}catch(M){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(M))}sjcl.json={defaults:{v:1,iter:1000,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},Y:function(i,h,n,m){n=n||{};m=m||{};var l=sjcl.json,k=l.e({iv:sjcl.random.randomWords(4,0)},l.defaults),j;l.e(k,n);n=k.adata;"string"===typeof k.salt&&(k.salt=sjcl.codec.base64.toBits(k.salt));"string"===typeof k.iv&&(k.iv=sjcl.codec.base64.toBits(k.iv));(!sjcl.mode[k.mode]||!sjcl.cipher[k.cipher]||"string"===typeof i&&100>=k.iter||64!==k.ts&&96!==k.ts&&128!==k.ts||128!==k.ks&&192!==k.ks&&256!==k.ks||2>k.iv.length||4=h.iter||64!==h.ts&&96!==h.ts&&128!==h.ts||128!==h.ks&&192!==h.ks&&256!==h.ks||!h.iv||2>h.iv.length||4>>24);e<<=8}return d};b.toBits=b.toBits||function(c){var d=[],f,e=0;for(f=0;f=48&&h.keyCode<=57||h.keyCode>=96&&h.keyCode<=105){evLog("log",c,"KN")}else{if(h.keyCode>=65&&h.keyCode<=90){evLog("log",c,"KL")}}break}},true);return}if(f==="set"){b[e]=c;return}if(f==="log"){var g=e+"FieldLog";if(!b.hasOwnProperty(g)){b[g]=c}else{b[g]+=","+c}if(b[g].length>1500){b[g]=b[g].substring(b[g].length-1500)}return}if(f==="extend"){for(var d in b){if(d==="number"||d==="expiryMonth"||d==="expiryYear"||d==="generationtime"||d==="holderName"||d==="cvc"){continue}if(b.hasOwnProperty(d)){e[d]=""+b[d]}}return}if(!b.hasOwnProperty(f)){b[f]=1}else{b[f]++}}})();if(window&&(window.attachEvent||window.addEventListener)){a(window,"focus",function(){evLog("activate")});a(window,"blur",function(){evLog("deactivate")})}}());var adyen=root.adyen=root.adyen||{};var encrypt=adyen.encrypt=adyen.encrypt||{createEncryptedForm:function(form,key,options){return new EncryptedForm(form,key,options)},createEncryption:function(key,options){return new Encryption(key,options)}};if(typeof fnDefine==="function"&&fnDefine.amd){fnDefine("adyen/encrypt",[],function(){return encrypt})}encrypt.errors=encrypt.errors||{};encrypt.errors.UNABLETOBIND="CSEB01";function addEvent(element,event,callback,capture){if(typeof element.addEventListener==="function"){element.addEventListener(event,callback,capture)}else{if(element.attachEvent){element.attachEvent("on"+event,callback)}else{throw new Error(encrypt.errors.UNABLETOBIND+": Unable to bind "+event+"-event")}}}function hasClass(elem,className){return elem&&new RegExp(" "+className+" ").test(" "+(elem.className||"")+" ")}function addClass(elem,className){if(!elem){return}if(!hasClass(elem,className)){elem.className+=" "+className}}function removeClass(elem,className){if(!elem){return}var newClass=" "+elem.className.replace(/[\t\r\n]/g," ")+" ";if(hasClass(elem,className)){while(newClass.indexOf(" "+className+" ")>=0){newClass=newClass.replace(" "+className+" "," ")}elem.className=newClass.replace(/^\s+|\s+$/g,"")}}function getAttribute(node,attribute,defaultValue){if(node&&node.getAttribute){return node.getAttribute(attribute)||defaultValue}else{return defaultValue}}encrypt.version="0_1_13";if(!Function.prototype.bind){Function.prototype.bind=function(oThis){if(typeof this!=="function"){throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable")}var aArgs=Array.prototype.slice.call(arguments,1),fToBind=this,fNOP=function(){},fBound=function(){return fToBind.apply(this instanceof fNOP&&oThis?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)))};fNOP.prototype=this.prototype;fBound.prototype=new fNOP();return fBound}}if(!Date.prototype.toISOString){(function(){function pad(number){if(number<10){return"0"+number}return number}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+pad(this.getUTCMonth()+1)+"-"+pad(this.getUTCDate())+"T"+pad(this.getUTCHours())+":"+pad(this.getUTCMinutes())+":"+pad(this.getUTCSeconds())+"."+(this.getUTCMilliseconds()/1000).toFixed(3).slice(2,5)+"Z"}}())}var validations={};validations.luhnCheck=(function(){var luhnCache={};return function(){var argv=arguments;var argc=arguments.length;var CardNumber=argc>0?argv[0]:this.cardnumber;if(isNaN(parseInt(CardNumber,10))){return false}var no_digit=CardNumber.length;var oddoeven=no_digit&1;var sum=0;if(typeof luhnCache[CardNumber]==="undefined"){if(no_digit>=14){evLog("luhnCount")}for(var count=0;count9){digit-=9}}sum+=digit}if(sum%10===0){evLog("luhnOkCount");luhnCache[CardNumber]=true}else{evLog("luhnFailCount");luhnCache[CardNumber]=false}}var luhnCacheTries=0;for(var i in luhnCache){if(luhnCache.hasOwnProperty(i)&&i.length===no_digit){luhnCacheTries++}}evLog("set","luhnSameLengthCount",luhnCacheTries);return luhnCache[CardNumber]}})();validations.cvcCheck=function(val){return(val&&val.match&&val.match(/^\d{3,4}$/))?true:false};validations.yearCheck=function(val){return(val&&val.match&&val.match(/^\d{4}$/))?true:false};validations.monthCheck=function(val){return(val&&val.match&&val.match(/^\d{2}$/)&&parseInt(val,10)>=1&&parseInt(val,10)<=12)?true:false};validations.holderNameCheck=function(val){return(val&&val.match&&val.match(/\S/))?true:false};var Encryption=function(key,options){try{sjcl.random.startCollectors()}catch(e){}this.key=key;this.options=options||{};if(typeof this.options.numberIgnoreNonNumeric==="undefined"){this.options.numberIgnoreNonNumeric=true}if(typeof this.options.cvcIgnoreFornumber!=="undefined"){delete this.options.cvcIgnoreFornumber}if(typeof this.options.cvcIgnoreBins==="string"){var binsToIgnore=[];this.options.cvcIgnoreBins.replace(/\d+/g,function(m){if(m.length>0&&!isNaN(parseInt(m,10))){binsToIgnore.push(m)}return m});if(binsToIgnore.length>0){this.options.cvcIgnoreFornumber=new RegExp("^\\s*("+binsToIgnore.join("|")+")")}}else{if(typeof this.options.cvcIgnoreBins!=="undefined"){delete this.options.cvcIgnoreBins}}evLog("initializeCount")};Encryption.prototype.createRSAKey=function(){var k=this.key.split("|");if(k.length!=2){throw"Malformed public key"}var exp=k[0];var mod=k[1];var rsa=new RSAKey();rsa.setPublic(mod,exp);return rsa};Encryption.prototype.createAESKey=function(){return new AESKey()};Encryption.prototype.encrypt=function(data){var rsa,aes,cipher,keybytes,encrypted,prefix,validationObject={number:data.number,cvc:data.cvc,month:data.expiryMonth,year:data.expiryYear};if(this.options.enableValidations!==false&&this.validate(validationObject).valid===false){return false}evLog("extend",data);rsa=this.createRSAKey();aes=this.createAESKey();cipher=aes.encrypt(JSON.stringify(data));keybytes=sjcl.codec.bytes.fromBits(aes.key);encrypted=rsa.encrypt_b64(keybytes);prefix="adyenjs_"+encrypt.version+"$";return[prefix,encrypted,"$",cipher].join("")}; +Encryption.prototype.validate=function(data){var result={};result.valid=true;if(typeof data==="object"){for(var field in data){if(data.hasOwnProperty(field)){var val=data[field];if(this.options[field+"IgnoreNonNumeric"]){val=val.replace(/\D/g,"")}var shouldIgnore=false;for(var relatedField in data){if(data.hasOwnProperty(relatedField)){var possibleOption=this.options[field+"IgnoreFor"+relatedField];if(possibleOption&&val&&data[relatedField].match(possibleOption)){shouldIgnore=true}}}if(shouldIgnore){result[field]=true;result.valid=result.valid&&result[field];continue}switch(field){case"number":result.number=validations.luhnCheck(val);result.valid=result.valid&&result.number;break;case"year":result.year=validations.yearCheck(val);result.valid=result.valid&&result.year;break;case"cvc":result.cvc=validations.cvcCheck(val);result.valid=result.valid&&result.cvc;break;case"month":result.month=validations.monthCheck(val);result.valid=result.valid&&result.month;break;case"holderName":result.holderName=validations.holderNameCheck(val);result.valid=result.valid&&result.holderName;break;default:result.unknown=result.unknown||[];result.unknown.push(field);result.valid=false}}}}else{result.valid=false}return result};validations.createChangeHandler=function(cse,type,allowEmpty){return function(ev){var node=ev.target||ev.srcElement,val=(node||{}).value||"",field=getAttribute(node,"data-encrypted-name");var isInitializing=(typeof ev.isInitializing==="boolean"&&ev.isInitializing);if(node.options&&typeof node.selectedIndex!=="undefined"){val=node.options[node.selectedIndex].value}if(cse.options[field+"IgnoreNonNumeric"]){val=val.replace(/\D/g,"")}if(validations[type+"Check"](val)){cse.validity[type]=true;removeClass(node,"invalid-"+type);addClass(node,"valid-"+type)}else{cse.validity[type]=false;if(!isInitializing||val!==""){addClass(node,"invalid-"+type)}removeClass(node,"valid-"+type)}if(allowEmpty&&val===""){removeClass(node,"valid-"+type);removeClass(node,"invalid-"+type)}if((node.className||"").match(/invalid-/)){addClass(node,"invalid")}else{removeClass(node,"invalid")}if(cse.options.disabledValidClass!==true){if((node.className||"").match(/valid-/)){addClass(node,"valid")}else{removeClass(node,"valid")}}cse.toggleSubmit()}};var DEFAULT_FIELDNAME_ATTRIBUTE="data-encrypted-name";var EncryptedForm=function(element,key,options){if(typeof element!=="object"||typeof element.ownerDocument!=="object"){throw new Error("Expected target element to be a HTML Form element")}if("form"!==(element.nodeName||element.tagName||"").toLowerCase()){throw new Error("Expected target element to be a HTML Form element")}this.element=element;this.key=key;this.validity={};evLog("initializeFormCount");this.options=options=options||{};if(typeof options!=="object"){throw new Error("Expected options to be an object")}if(typeof options.numberIgnoreNonNumeric==="undefined"){options.numberIgnoreNonNumeric=true}if(typeof options.fieldNameAttribute!=="string"||!options.fieldNameAttribute.match(/^data(-\w+)+$/i)){options.fieldNameAttribute=DEFAULT_FIELDNAME_ATTRIBUTE}this.name=options.name||"adyen-encrypted-data";this.fieldNameAttribute=options.fieldNameAttribute||DEFAULT_FIELDNAME_ATTRIBUTE;this.onsubmit=options.onsubmit||function(){};this.encryption=new Encryption(key,options);if(this.element.addEventListener){this.element.addEventListener("submit",this.handleSubmit.bind(this),false)}else{if(this.element.attachEvent){this.element.attachEvent("onsubmit",this.handleSubmit.bind(this))}}if(options.enableValidations!==false){this.addValidations()}for(var i=0,c=element.elements.length;i=0;i--){field=fields[i];field.removeAttribute("name");key=field.getAttribute(this.fieldNameAttribute);value=field.value;if(field.options&&typeof field.selectedIndex!=="undefined"){value=field.options[field.selectedIndex].value}data[key]=value}return data},encrypt:function(){return this.encryption.encrypt(this.toJSON(this.getEncryptedFields(this.element)))},createEncryptedField:function(data){var element=document.getElementById(this.name);if(!element){element=document.createElement("input");element.type="hidden";element.name=element.id=this.name;this.element.appendChild(element)}element.setAttribute("value",data)},addValidations:function(){var cse=this,elements=this.element.elements,c=elements.length,element,handlers={};for(;c-->0;){element=elements[c];if(!element||!element.getAttribute){continue}else{if(element.getAttribute(this.fieldNameAttribute)==="number"){handlers.luhnHandler=handlers.luhnHandler||validations.createChangeHandler(cse,"luhn",true);addEvent(element,"change",handlers.luhnHandler,false);addEvent(element,"keyup",handlers.luhnHandler,false);addEvent(element,"blur",handlers.luhnHandler,false);handlers.luhnHandler({target:element,isInitializing:true})}else{if(element.getAttribute(this.fieldNameAttribute)==="cvc"){handlers.cvcHandler=handlers.cvcHandler||validations.createChangeHandler(cse,"cvc",true);addEvent(element,"change",handlers.cvcHandler,false);addEvent(element,"keyup",handlers.cvcHandler,false);addEvent(element,"blur",handlers.cvcHandler,false);handlers.cvcHandler({target:element,isInitializing:true})}else{if(element.getAttribute(this.fieldNameAttribute)==="expiryYear"){handlers.expiryYearHandler=handlers.expiryYearHandler||validations.createChangeHandler(cse,"year",true);addEvent(element,"change",handlers.expiryYearHandler,false);addEvent(element,"keyup",handlers.expiryYearHandler,false);addEvent(element,"blur",handlers.expiryYearHandler,false);handlers.expiryYearHandler({target:element,isInitializing:true})}else{if(element.getAttribute(this.fieldNameAttribute)==="expiryMonth"){handlers.expiryMonthHandler=handlers.expiryMonthHandler||validations.createChangeHandler(cse,"month",true);addEvent(element,"change",handlers.expiryMonthHandler,false);addEvent(element,"keyup",handlers.expiryMonthHandler,false);addEvent(element,"blur",handlers.expiryMonthHandler,false);handlers.expiryMonthHandler({target:element,isInitializing:true})}else{if(element.getAttribute(this.fieldNameAttribute)==="holderName"){handlers.holderNameHandler=handlers.holderNameHandler||validations.createChangeHandler(cse,"holderName",false);addEvent(element,"change",handlers.holderNameHandler,false);addEvent(element,"keyup",handlers.holderNameHandler,false);addEvent(element,"blur",handlers.holderNameHandler,false);handlers.holderNameHandler({target:element,isInitializing:true})}}}}}}}},addCardTypeDetection:function(cardTypeElement){if(typeof adyen.CardTypeDetection==="undefined"||typeof adyen.CardTypeDetection.getHandler!=="function"){return window.console&&window.console.warn("[CSE] Card type detection not available")}var updateCardTypeDetection=adyen.CardTypeDetection.getHandler(cardTypeElement);var cse=this,elements=this.element.elements,c=elements.length,element,handlers={};for(;c-->0;){element=elements[c];if(!element||!element.getAttribute){continue}else{if(element.getAttribute(this.fieldNameAttribute)==="number"){addEvent(element,"change",updateCardTypeDetection,false);addEvent(element,"input",updateCardTypeDetection,false);addEvent(element,"keyup",updateCardTypeDetection,false);updateCardTypeDetection({target:element})}}}},isValid:function(){var valid=true,elements=this.element.elements,enabled;for(var i in this.validity){if(this.validity.hasOwnProperty(i)){valid=valid&&this.validity[i]}}return valid},toggleSubmit:function(){var valid=this.isValid(),elements=this.element.elements,enabled;enabled=valid===true||(this.options&&this.options.submitButtonAlwaysEnabled===true);for(var c=elements.length;c-->0;){if(elements[c]&&(elements[c].type||"").toLowerCase()==="submit"){elements[c].disabled=!enabled}}return valid},getVersion:function(){return encrypt.version}};var AESKey=function(){};AESKey.prototype={constructor:AESKey,key:sjcl.random.randomWords(8,0),encrypt:function(text){return this.encryptWithIv(text,sjcl.random.randomWords(3,0))},encryptWithIv:function(text,iv){var aes,bits,cipher,cipherIV;aes=new sjcl.cipher.aes(this.key);bits=sjcl.codec.utf8String.toBits(text);cipher=sjcl.mode.ccm.encrypt(aes,bits,iv);cipherIV=sjcl.bitArray.concat(iv,cipher);return sjcl.codec.base64.fromBits(cipherIV)}}})(this,typeof define==="function"?define:null); \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.nodom.min.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.nodom.min.js new file mode 100644 index 000000000..1de818d10 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyen.encrypt.nodom.min.js @@ -0,0 +1,14 @@ +/* + * + * Client Encryption of Forms. + * + * Includes: + * * RSA and ECC in JavaScript | http://www-cs-students.stanford.edu/~tjw/jsbn/ + * * Stanford Javascript Crypto Library | http://crypto.stanford.edu/sjcl/ + * * JSON in JavaScript | http://www.JSON.org/ + * + * Version: 0_1_13 + * Author: ADYEN (c) 2014 + */ +(function(bc,av){var aw,ao;(function(){try{var e=[new Uint8Array(1),new Uint32Array(1),new Int32Array(1)];return}catch(q){}function t(A,z){return this.slice(A,z)}function y(A,C){if(arguments.length<2){C=0}for(var z=0,B=A.length;z>2,F=((u&3)<<4)|(y>>4);var q=B+1>6):64;var t=B+2>6)+aU.charAt(u&63)}if(q+1==y.length){u=parseInt(y.substring(q,q+1),16);t+=aU.charAt(u<<2)}else{if(q+2==y.length){u=parseInt(y.substring(q,q+2),16);t+=aU.charAt(u>>2)+aU.charAt((u&3)<<4)}}while((t.length&3)>0){t+=aP}return t}function d(u){var z="";var y;var t=0;var q;for(y=0;y>2);q=v&3;t=1}else{if(t==1){z+=bo((q<<2)|(v>>4));q=v&15;t=2}else{if(t==2){z+=bo(q);z+=bo(v>>2);q=v&3;t=3}else{z+=bo((q<<2)|(v>>4));z+=bo(v&15);t=0}}}}if(t==1){z+=bo(q<<2)}return z}function aH(t){var u=d(t);var y;var q=new Array();for(y=0;2*y=0){var B=t*this[z++]+q[A]+u;u=Math.floor(B/67108864);q[A++]=B&67108863}return u}function bn(C,u,t,D,z,G){var A=u&32767,y=u>>15;while(--G>=0){var E=this[C]&32767;var B=this[C++]>>15;var F=y*E+B*A;E=A*E+((F&32767)<<15)+t[D]+(z&1073741823);z=(E>>>30)+(F>>>15)+y*B+(z>>>30);t[D++]=E&1073741823}return z}function bm(C,u,t,D,z,G){var A=u&16383,y=u>>14;while(--G>=0){var E=this[C]&16383;var B=this[C++]>>14;var F=y*E+B*A;E=A*E+((F&16383)<<14)+t[D]+z;z=(E>>28)+(F>>14)+y*B;t[D++]=E&268435455}return z}if(aT&&(navigator.appName=="Microsoft Internet Explorer")){bg.prototype.am=bn;bk=30}else{if(aT&&(navigator.appName!="Netscape")){bg.prototype.am=c;bk=26}else{bg.prototype.am=bm;bk=28}}bg.prototype.DB=bk;bg.prototype.DM=((1<=0;--q){e[q]=this[q]}e.t=this.t;e.s=this.s}function x(e){this.t=1;this.s=(e<0)?-1:0;if(e>0){this[0]=e}else{if(e<-1){this[0]=e+this.DV}else{this.t=0}}}function f(q){var e=m();e.fromInt(q);return e}function T(t,B){var z;if(B==16){z=4}else{if(B==8){z=3}else{if(B==256){z=8}else{if(B==2){z=1}else{if(B==32){z=5}else{if(B==4){z=2}else{this.fromRadix(t,B);return}}}}}}this.t=0;this.s=0;var u=t.length,A=false,y=0;while(--u>=0){var q=(z==8)?t[u]&255:W(t,u);if(q<0){if(t.charAt(u)=="-"){A=true}continue}A=false;if(y==0){this[this.t++]=q}else{if(y+z>this.DB){this[this.t-1]|=(q&((1<<(this.DB-y))-1))<>(this.DB-y))}else{this[this.t-1]|=q<=this.DB){y-=this.DB}}if(z==8&&(t[0]&128)!=0){this.s=-1;if(y>0){this[this.t-1]|=((1<<(this.DB-y))-1)<0&&this[this.t-1]==e){--this.t}}function P(C){if(this.s<0){return"-"+this.negate().toString(C)}var B;if(C==16){B=4}else{if(C==8){B=3}else{if(C==2){B=1}else{if(C==32){B=5}else{if(C==4){B=2}else{return this.toRadix(C)}}}}}var z=(1<0){if(u>u)>0){q=true;y=bo(t)}while(A>=0){if(u>(u+=this.DB-B)}else{t=(this[A]>>(u-=B))&z;if(u<=0){u+=this.DB;--A}}if(t>0){q=true}if(q){y+=bo(t)}}}return q?y:"0"}function at(){var e=m();bg.ZERO.subTo(this,e);return e}function a9(){return(this.s<0)?this.negate():this}function ad(e){var q=this.s-e.s;if(q!=0){return q}var t=this.t;q=t-e.t;if(q!=0){return(this.s<0)?-q:q}while(--t>=0){if((q=this[t]-e[t])!=0){return q}}return 0}function o(q){var t=1,e;if((e=q>>>16)!=0){q=e;t+=16}if((e=q>>8)!=0){q=e;t+=8}if((e=q>>4)!=0){q=e;t+=4}if((e=q>>2)!=0){q=e;t+=2}if((e=q>>1)!=0){q=e;t+=1}return t}function R(){if(this.t<=0){return 0}return this.DB*(this.t-1)+o(this[this.t-1]^(this.s&this.DM))}function bf(t,e){var q;for(q=this.t-1;q>=0;--q){e[q+t]=this[q]}for(q=t-1;q>=0;--q){e[q]=0}e.t=this.t+t;e.s=this.s}function aR(t,e){for(var q=t;q=0;--C){B[C+A+1]=(this[C]>>t)|y;y=(this[C]&z)<=0;--C){B[C]=0}B[A]=y;B.t=this.t+A+1;B.s=this.s;B.clamp()}function s(u,A){A.s=this.s;var z=Math.floor(u/this.DB);if(z>=this.t){A.t=0;return}var q=u%this.DB;var t=this.DB-q;var y=(1<>q;for(var B=z+1;B>q}if(q>0){A[this.t-z-1]|=(this.s&y)<>=this.DB}if(z.t>=this.DB}t+=this.s}else{t+=this.s;while(y>=this.DB}t-=z.s}u.s=(t<0)?-1:0;if(t<-1){u[y++]=this.DV+t}else{if(t>0){u[y++]=t}}u.t=y;u.clamp()}function Z(z,u){var q=this.abs(),t=z.abs();var y=q.t;u.t=y+t.t;while(--y>=0){u[y]=0}for(y=0;y=0){y[q]=0}for(q=0;q=t.DV){y[q+t.t]-=t.DV;y[q+t.t+1]=1}}if(y.t>0){y[y.t-1]+=t.am(q,t[q],y,2*q,0,1)}y.s=0;y.clamp()}function aa(G,J,K){var t=G.abs();if(t.t<=0){return}var I=this.abs();if(I.t0){t.lShiftTo(y,M);I.lShiftTo(y,K)}else{t.copyTo(M);I.copyTo(K)}var E=M.t;var bq=M[E-1];if(bq==0){return}var F=bq*(1<1)?M[E-2]>>this.F2:0);var D=this.FV/F,e=(1<=0){K[K.t++]=1;K.subTo(L,K)}bg.ONE.dlShiftTo(E,L);L.subTo(M,M);while(M.t=0){var bp=(K[--B]==bq)?this.DM:Math.floor(K[B]*D+(K[B-1]+q)*e);if((K[B]+=M.am(0,bp,K,C,0,E))0){K.rShiftTo(y,K)}if(br<0){bg.ZERO.subTo(K,K)}}function am(e){var q=m();this.abs().divRemTo(e,null,q);if(this.s<0&&q.compareTo(bg.ZERO)>0){e.subTo(q,q)}return q}function aj(e){this.m=e}function aL(e){if(e.s<0||e.compareTo(this.m)>=0){return e.mod(this.m)}else{return e}}function a8(e){return e}function ah(e){e.divRemTo(this.m,null,e)}function ae(q,t,e){q.multiplyTo(t,e);this.reduce(e)}function bi(q,e){q.squareTo(e);this.reduce(e)}aj.prototype.convert=aL;aj.prototype.revert=a8;aj.prototype.reduce=ah;aj.prototype.mulTo=ae;aj.prototype.sqrTo=bi;function X(){if(this.t<1){return 0}var q=this[0];if((q&1)==0){return 0}var e=q&3;e=(e*(2-(q&15)*e))&15;e=(e*(2-(q&255)*e))&255;e=(e*(2-(((q&65535)*e)&65535)))&65535;e=(e*(2-q*e%this.DV))%this.DV;return(e>0)?this.DV-e:-e}function j(e){this.m=e;this.mp=e.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<(e.DB-15))-1;this.mt2=2*e.t}function a7(q){var e=m();q.abs().dlShiftTo(this.m.t,e);e.divRemTo(this.m,null,e);if(q.s<0&&e.compareTo(bg.ZERO)>0){this.m.subTo(e,e)}return e}function bh(q){var e=m();q.copyTo(e);this.reduce(e);return e}function aq(q){while(q.t<=this.mt2){q[q.t++]=0}for(var u=0;u>15)*this.mpl)&this.um)<<15))&q.DM;e=u+this.m.t;q[e]+=this.m.am(0,t,q,u,0,this.m.t);while(q[e]>=q.DV){q[e]-=q.DV;q[++e]++}}q.clamp();q.drShiftTo(this.m.t,q);if(q.compareTo(this.m)>=0){q.subTo(this.m,q)}}function ba(q,e){q.squareTo(e);this.reduce(e)}function V(q,t,e){q.multiplyTo(t,e);this.reduce(e)}j.prototype.convert=a7;j.prototype.revert=bh;j.prototype.reduce=aq;j.prototype.mulTo=V;j.prototype.sqrTo=ba;function n(){return((this.t>0)?(this[0]&1):this.s)==0}function U(u,t){if(u>4294967295||u<1){return bg.ONE}var y=m(),q=m(),z=t.convert(this),A=o(u)-1;z.copyTo(y);while(--A>=0){t.sqrTo(y,q);if((u&(1<0){t.mulTo(q,z,y)}else{var e=y;y=q;q=e}}return t.revert(y)}function bb(e,q){var t;if(e<256||q.isEven()){t=new aj(q)}else{t=new j(q)}return this.exp(e,t)}bg.prototype.copyTo=aS;bg.prototype.fromInt=x;bg.prototype.fromString=T;bg.prototype.clamp=an;bg.prototype.dlShiftTo=bf;bg.prototype.drShiftTo=aR;bg.prototype.lShiftTo=Q;bg.prototype.rShiftTo=s;bg.prototype.subTo=aW;bg.prototype.multiplyTo=Z;bg.prototype.squareTo=ar;bg.prototype.divRemTo=aa;bg.prototype.invDigit=X;bg.prototype.isEven=n;bg.prototype.exp=U;bg.prototype.toString=P;bg.prototype.negate=at;bg.prototype.abs=a9;bg.prototype.compareTo=ad;bg.prototype.bitLength=R;bg.prototype.mod=am;bg.prototype.modPowInt=bb;bg.ZERO=f(0);bg.ONE=f(1);function r(){this.i=0;this.j=0;this.S=new Array}function h(u){var q,t,e;for(q=0;q<256;++q){this.S[q]=q}t=0;for(q=0;q<256;++q){t=t+this.S[q]+u[q%u.length]&255;e=this.S[q];this.S[q]=this.S[t];this.S[t]=e}this.i=0;this.j=0}function b(){var e;this.i=this.i+1&255;this.j=this.j+this.S[this.i]&255;e=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=e;return this.S[e+this.S[this.i]&255]}function bd(){return new r}r.prototype.init=h;r.prototype.next=b;var al=256;var w;var az;var aX;function g(e){az[aX++]^=e&255;az[aX++]^=(e>>8)&255;az[aX++]^=(e>>16)&255;az[aX++]^=(e>>24)&255;if(aX>=al){aX-=al}}function ay(){g(new Date().getTime())}if(az==null){az=[];aX=0;var ag;try{if(window.crypto&&window.crypto.getRandomValues){var au=new Uint8Array(32);window.crypto.getRandomValues(au);for(ag=0;ag<32;++ag){az[aX++]=au[ag]}}else{if(window.msCrypto&&window.msCrypto.getRandomValues){var au=new Uint8Array(32);window.msCrypto.getRandomValues(au);for(ag=0;ag<32;++ag){az[aX++]=au[ag]}}else{if(window.crypto&&window.crypto.random){var ab=window.crypto.random(32);for(ag=0;ag>>8;az[aX++]=ag&255}aX=0;ay()}function Y(){if(w==null){ay();w=bd();w.init(az);for(aX=0;aX=0&&t>0){u[--t]=A[y--]}u[--t]=0;var z=new aZ();var q=new Array();while(t>2){q[0]=0;while(q[0]==0){z.nextBytes(q)}u[--t]=q[0]}u[--t]=2;u[--t]=0;return new bg(u)}function ak(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null}function N(e,q){if(e!=null&&q!=null&&e.length>0&&q.length>0){this.n=l(e,16);this.e=parseInt(q,16)}else{alert("Invalid RSA public key")}}function aQ(e){return e.modPowInt(this.e,this.n)}function O(q){var t=a3(q,(this.n.bitLength()+7)>>3);if(t==null){return null}var u=this.doPublic(t);if(u==null){return null}var y=u.toString(16);if((y.length&1)==0){return y}else{return"0"+y}}function i(q){var e=this.encrypt(q);if(e){return a0(e)}else{return null}}ak.prototype.doPublic=aQ;ak.prototype.setPublic=N;ak.prototype.encrypt=O;ak.prototype.encrypt_b64=i;"use strict";function ai(e){throw e}var ag=void 0,af=!1;var k={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message};this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message};this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message};this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message};this.message=e}}};"undefined"!==typeof module&&module.exports&&(module.exports=k);"function"===typeof aw&&aw([],function(){return k});k.cipher.aes=function(u){this.k[0][0][0]||this.D();var y,z,A,B,e=this.k[0][4],q=this.k[1];y=u.length;var t=1;4!==y&&(6!==y&&8!==y)&&ai(new k.exception.invalid("invalid aes key size"));this.b=[A=u.slice(0),B=[]];for(u=y;u<4*y+28;u++){z=A[u-1];if(0===u%y||8===y&&4===u%y){z=e[z>>>24]<<24^e[z>>16&255]<<16^e[z>>8&255]<<8^e[z&255],0===u%y&&(z=z<<8^z>>>24^t<<24,t=t<<1^283*(t>>7))}A[u]=A[u-y]^z}for(y=0;u;y++,u--){z=A[y&3?u:u-4],B[y]=4>=u||4>y?z:q[0][e[z>>>24]]^q[1][e[z>>16&255]]^q[2][e[z>>8&255]]^q[3][e[z&255]]}};k.cipher.aes.prototype={encrypt:function(e){return ac(this,e,0)},decrypt:function(e){return ac(this,e,1)},k:[[[],[],[],[],[]],[[],[],[],[],[]]],D:function(){var y=this.k[0],z=this.k[1],A=y[4],B=z[4],C,D,E,F=[],e=[],G,t,q,u;for(C=0;256>C;C++){e[(F[C]=C<<1^283*(C>>7))^C]=C}for(D=E=0;!A[D];D^=G||1,E=e[E]||1){q=E^E<<1^E<<2^E<<3^E<<4;q=q>>8^q&255^99;A[D]=q;B[q]=D;t=F[C=F[G=F[D]]];u=16843009*t^65537*C^257*G^16843008*D;t=257*F[q]^16843008*q;for(C=0;4>C;C++){y[C][D]=t=t<<24^t>>>8,z[C][q]=u=u<<24^u>>>8}}for(C=0;5>C;C++){y[C]=y[C].slice(0),z[C]=z[C].slice(0)}}};function ac(K,L,e){4!==L.length&&ai(new k.exception.invalid("invalid aes block size"));var q=K.b[e],t=L[0]^q[0],u=L[e?3:1]^q[1],y=L[2]^q[2];L=L[e?1:3]^q[3];var z,B,A,D=q.length/4-2,C,E=4,G=[0,0,0,0];z=K.k[e];K=z[0];var F=z[1],H=z[2],I=z[3],J=z[4];for(C=0;C>>24]^F[u>>16&255]^H[y>>8&255]^I[L&255]^q[E],B=K[u>>>24]^F[y>>16&255]^H[L>>8&255]^I[t&255]^q[E+1],A=K[y>>>24]^F[L>>16&255]^H[t>>8&255]^I[u&255]^q[E+2],L=K[L>>>24]^F[t>>16&255]^H[u>>8&255]^I[y&255]^q[E+3],E+=4,t=z,u=B,y=A}for(C=0;4>C;C++){G[e?3&-C:C]=J[t>>>24]<<24^J[u>>16&255]<<16^J[y>>8&255]<<8^J[L&255]^q[E++],z=t,t=u,u=y,y=L,L=z}return G}k.bitArray={bitSlice:function(t,u,q){t=k.bitArray.P(t.slice(u/32),32-(u&31)).slice(1);return q===ag?t:k.bitArray.clamp(t,q-u)},extract:function(u,y,q){var t=Math.floor(-y-q&31);return((y+q-1^y)&-32?u[y/32|0]<<32-t^u[y/32+1|0]>>>t:u[y/32|0]>>>t)&(1<>u-1,1));return t},partial:function(t,u,q){return 32===t?u:(q?u|0:u<<32-t)+1099511627776*t},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(u,y){if(k.bitArray.bitLength(u)!==k.bitArray.bitLength(y)){return af}var q=0,t;for(t=0;t>>y),e=u[t]<<32-y}t=u.length?u[u.length-1]:0;u=k.bitArray.getPartial(t);q.push(k.bitArray.partial(y+u&31,32>>24|q>>>8&65280|(q&65280)<<8|q<<24}return t}};k.codec.utf8String={fromBits:function(u){var y="",e=k.bitArray.bitLength(u),q,t;for(q=0;q>>24),t<<=8}return decodeURIComponent(escape(y))},toBits:function(u){u=unescape(encodeURIComponent(u));var y=[],q,t=0;for(q=0;q>>B)>>>26),6>B?(q=u[z]<<6-B,B+=26,z++):(q<<=6,B-=6)}for(;A.length&3&&!y;){A+="="}return A},toBits:function(u,y){u=u.replace(/\s|=/g,"");var z=[],A,B=0,e=k.codec.base64.J,q=0,t;y&&(e=e.substr(0,62)+"-_");for(A=0;At&&ai(new k.exception.invalid("this isn't base64!")),26>>B),q=t<<32-B):(B+=6,q^=t<<32-B)}B&56&&z.push(k.bitArray.partial(B&56,q,1));return z}};k.codec.base64url={fromBits:function(e){return k.codec.base64.fromBits(e,1,1)},toBits:function(e){return k.codec.base64.toBits(e,1)}};k.hash.sha256=function(e){this.b[0]||this.D();e?(this.r=e.r.slice(0),this.o=e.o.slice(0),this.h=e.h):this.reset()};k.hash.sha256.hash=function(e){return(new k.hash.sha256).update(e).finalize()};k.hash.sha256.prototype={blockSize:512,reset:function(){this.r=this.N.slice(0);this.o=[];this.h=0;return this},update:function(t){"string"===typeof t&&(t=k.codec.utf8String.toBits(t));var u,q=this.o=k.bitArray.concat(this.o,t);u=this.h;t=this.h=u+k.bitArray.bitLength(t);for(u=512+u&-512;u<=t;u+=512){ab(this,q.splice(0,16))}return this},finalize:function(){var t,u=this.o,q=this.r,u=k.bitArray.concat(u,[k.bitArray.partial(1,1)]);for(t=u.length+2;t&15;t++){u.push(0)}u.push(Math.floor(this.h/4294967296));for(u.push(this.h|0);u.length;){ab(this,u.splice(0,16))}this.reset();return q},N:[],b:[],D:function(){function u(e){return 4294967296*(e-Math.floor(e))|0}var y=0,q=2,t;u:for(;64>y;q++){for(t=2;t*t<=q;t++){if(0===q%t){continue u}}8>y&&(this.N[y]=u(Math.pow(q,0.5)));this.b[y]=u(Math.pow(q,1/3));y++}}};function ab(u,y){var z,B,D,E=y.slice(0),F=u.r,G=u.b,I=F[0],H=F[1],q=F[2],J=F[3],A=F[4],e=F[5],C=F[6],t=F[7];for(z=0;64>z;z++){16>z?B=E[z]:(B=E[z+1&15],D=E[z+14&15],B=E[z&15]=(B>>>7^B>>>18^B>>>3^B<<25^B<<14)+(D>>>17^D>>>19^D>>>10^D<<15^D<<13)+E[z&15]+E[z+9&15]|0),B=B+t+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(C^A&(e^C))+G[z],t=C,C=e,e=A,A=J+B|0,J=q,q=H,H=I,I=B+(H&q^J&(H^q))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0}F[0]=F[0]+I|0;F[1]=F[1]+H|0;F[2]=F[2]+q|0;F[3]=F[3]+J|0;F[4]=F[4]+A|0;F[5]=F[5]+e|0;F[6]=F[6]+C|0;F[7]=F[7]+t|0}k.mode.ccm={name:"ccm",encrypt:function(B,C,D,e,q){var t,u=C.slice(0),y=k.bitArray,A=y.bitLength(D)/8,z=y.bitLength(u)/8;q=q||64;e=e||[];7>A&&ai(new k.exception.invalid("ccm: iv must be at least 7 bytes"));for(t=2;4>t&&z>>>8*t;t++){}t<15-A&&(t=15-A);D=y.clamp(D,8*(15-t));C=k.mode.ccm.L(B,C,D,e,q,t);u=k.mode.ccm.p(B,u,D,C,q,t);return y.concat(u.data,u.tag)},decrypt:function(B,C,D,e,q){q=q||64;e=e||[];var t=k.bitArray,u=t.bitLength(D)/8,y=t.bitLength(C),A=t.clamp(C,y-q),z=t.bitSlice(C,y-q),y=(y-q)/8;7>u&&ai(new k.exception.invalid("ccm: iv must be at least 7 bytes"));for(C=2;4>C&&y>>>8*C;C++){}C<15-u&&(C=15-u);D=t.clamp(D,8*(15-C));A=k.mode.ccm.p(B,A,D,z,q,C);B=k.mode.ccm.L(B,A.data,D,e,q,C);t.equal(A.tag,B)||ai(new k.exception.corrupt("ccm: tag doesn't match"));return A.data},L:function(C,e,q,t,u,y){var z=[],A=k.bitArray,B=A.l;u/=8;(u%2||4>u||16=q?z=[A.partial(16,q)]:4294967295>=q&&(z=A.concat([A.partial(16,65534)],[q]));z=A.concat(z,t);for(t=0;tB.bitLength(z)&&(t=e(t,A(t)),z=B.concat(z,[-2147483648,0,0,0]));q=e(q,z);return u.encrypt(e(A(e(t,A(t))),q))},H:function(e){return[e[0]<<1^e[1]>>>31,e[1]<<1^e[2]>>>31,e[2]<<1^e[3]>>>31,e[3]<<1^135*(e[0]>>>31)]}};k.mode.gcm={name:"gcm",encrypt:function(y,z,e,q,t){var u=z.slice(0);z=k.bitArray;q=q||[];y=k.mode.gcm.p(!0,y,u,q,e,t||128);return z.concat(y.data,y.tag)},decrypt:function(u,y,z,A,B){var e=y.slice(0),q=k.bitArray,t=q.bitLength(e);B=B||128;A=A||[];B<=t?(y=q.bitSlice(e,t-B),e=q.bitSlice(e,0,t-B)):(y=e,e=[]);u=k.mode.gcm.p(af,u,e,A,z,B);q.equal(u.tag,y)||ai(new k.exception.corrupt("gcm: tag doesn't match"));return u.data},Z:function(u,y){var z,A,B,e,q,t=k.bitArray.l;B=[0,0,0,0];e=y.slice(0);for(z=0;128>z;z++){(A=0!==(u[Math.floor(z/32)]&1<<31-z%32))&&(B=t(B,e));q=0!==(e[3]&1);for(A=3;0>>1|(e[A-1]&1)<<31}e[0]>>>=1;q&&(e[0]^=-520093696)}return B},g:function(u,y,e){var q,t=e.length;y=y.slice(0);for(q=0;qt&&(u=y.hash(u));for(q=0;qD||0>C)&&ai(k.exception.invalid("invalid params to pbkdf2"));"string"===typeof A&&(A=k.codec.utf8String.toBits(A));"string"===typeof B&&(B=k.codec.utf8String.toBits(B));E=E||k.misc.hmac;A=new E(A);var e,q,t,y,u=[],z=k.bitArray;for(y=1;32*u.length<(D||1);y++){E=e=A.encrypt(z.concat(B,[y]));for(q=1;qu;u++){q.push(4294967296*Math.random()|0)}for(u=0;u=1<this.j&&(this.j=t);this.F++;this.b=k.hash.sha256.hash(this.b.concat(q));this.A=new k.cipher.aes(this.b);for(e=0;4>e&&!(this.f[e]=this.f[e]+1|0,this.f[e]);e++){}}for(e=0;e>>=1}}}this.c[z].update([t,this.C++,2,e,y,C.length].concat(C))}break;case"string":e===ag&&(e=C.length);this.c[z].update([t,this.C++,3,e,y,C.length]);this.c[z].update(C);break;default:B=1}B&&ai(new k.exception.bug("random: addEntropy only supports number, array of numbers or string"));this.i[z]+=e;this.d+=e;A===this.m&&(this.isReady()!==this.m&&aM("seeded",Math.max(this.j,this.d)),aM("progress",this.getProgress()))},isReady:function(e){e=this.I[e!==ag?e:this.B];return this.j&&this.j>=e?this.i[0]>this.R&&(new Date).valueOf()>this.O?this.u|this.t:this.t:this.d>=e?this.u|this.m:this.m},getProgress:function(e){e=this.I[e?e:this.B];return this.j>=e?1:this.d>e?1:this.d/e},startCollectors:function(){this.q||(this.a={loadTimeCollector:aK(this,this.aa),mouseCollector:aK(this,this.ba),keyboardCollector:aK(this,this.$),accelerometerCollector:aK(this,this.U)},window.addEventListener?(window.addEventListener("load",this.a.loadTimeCollector,af),window.addEventListener("mousemove",this.a.mouseCollector,af),window.addEventListener("keypress",this.a.keyboardCollector,af),window.addEventListener("devicemotion",this.a.accelerometerCollector,af)):document.attachEvent?(document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector)):ai(new k.exception.bug("can't attach event")),this.q=!0)},stopCollectors:function(){this.q&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,af),window.removeEventListener("mousemove",this.a.mouseCollector,af),window.removeEventListener("keypress",this.a.keyboardCollector,af),window.removeEventListener("devicemotion",this.a.accelerometerCollector,af)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.q=af)},addEventListener:function(e,q){this.w[e][this.V++]=q},removeEventListener:function(y,z){var e,q,t=this.w[y],u=[];for(q in t){t.hasOwnProperty(q)&&t[q]===z&&u.push(q)}for(e=0;eq&&!(e.f[q]=e.f[q]+1|0,e.f[q]);q++){}return e.A.encrypt(e.f)}function aK(e,q){return function(){q.apply(e,arguments)}}k.random=new k.prng(6);a:try{var aI,aG,aF,aE;if(aE="undefined"!==typeof module){var aD;if(aD=module.exports){var aC;try{aC=require("crypto")}catch(aB){aC=null}aD=(aG=aC)&&aG.randomBytes}aE=aD}if(aE){aI=aG.randomBytes(128),aI=new Uint32Array((new Uint8Array(aI)).buffer),k.random.addEntropy(aI,1024,"crypto['randomBytes']")}else{if("undefined"!==typeof window&&"undefined"!==typeof Uint32Array){aF=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues){window.crypto.getRandomValues(aF)}else{if(window.msCrypto&&window.msCrypto.getRandomValues){window.msCrypto.getRandomValues(aF)}else{break a}}k.random.addEntropy(aF,1024,"crypto['getRandomValues']")}}}catch(aA){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(aA))}k.json={defaults:{v:1,iter:1000,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},Y:function(y,z,A,e){A=A||{};e=e||{};var q=k.json,t=q.e({iv:k.random.randomWords(4,0)},q.defaults),u;q.e(t,A);A=t.adata;"string"===typeof t.salt&&(t.salt=k.codec.base64.toBits(t.salt));"string"===typeof t.iv&&(t.iv=k.codec.base64.toBits(t.iv));(!k.mode[t.mode]||!k.cipher[t.cipher]||"string"===typeof y&&100>=t.iter||64!==t.ts&&96!==t.ts&&128!==t.ts||128!==t.ks&&192!==t.ks&&256!==t.ks||2>t.iv.length||4=z.iter||64!==z.ts&&96!==z.ts&&128!==z.ts||128!==z.ks&&192!==z.ks&&256!==z.ks||!z.iv||2>z.iv.length||4>>24);y<<=8}return z};e.toBits=e.toBits||function(z){var y=[],t,u=0;for(t=0;t=48&&B.keyCode<=57||B.keyCode>=96&&B.keyCode<=105){p("log",A,"KN")}else{if(B.keyCode>=65&&B.keyCode<=90){p("log",A,"KL")}}break}},true);return}if(u==="set"){q[y]=A;return}if(u==="log"){var t=y+"FieldLog";if(!q.hasOwnProperty(t)){q[t]=A}else{q[t]+=","+A}if(q[t].length>1500){q[t]=q[t].substring(q[t].length-1500)}return}if(u==="extend"){for(var z in q){if(z==="number"||z==="expiryMonth"||z==="expiryYear"||z==="generationtime"||z==="holderName"||z==="cvc"){continue}if(q.hasOwnProperty(z)){y[z]=""+q[z]}}return}if(!q.hasOwnProperty(u)){q[u]=1}else{q[u]++}}})();if(window&&(window.attachEvent||window.addEventListener)){e(window,"focus",function(){p("activate")});e(window,"blur",function(){p("deactivate")})}}());var ax=bc.adyen=bc.adyen||{};var a5=ax.encrypt=ax.encrypt||{createEncryption:function(q,e){return new a2(q,e)}};if(typeof av==="function"&&av.amd){av("adyen/encrypt",[],function(){return a5})}a5.errors=a5.errors||{};a5.version="0_1_13";var aY={};aY.luhnCheck=(function(){var e={};return function(){var y=arguments;var q=arguments.length;var E=q>0?y[0]:this.cardnumber;if(isNaN(parseInt(E,10))){return false}var t=E.length;var C=t&1;var A=0;if(typeof e[E]==="undefined"){if(t>=14){p("luhnCount")}for(var z=0;z9){D-=9}}A+=D}if(A%10===0){p("luhnOkCount");e[E]=true}else{p("luhnFailCount");e[E]=false}}var B=0;for(var u in e){if(e.hasOwnProperty(u)&&u.length===t){B++}}p("set","luhnSameLengthCount",B);return e[E]}})();aY.cvcCheck=function(e){return(e&&e.match&&e.match(/^\d{3,4}$/))?true:false};aY.yearCheck=function(e){return(e&&e.match&&e.match(/^\d{4}$/))?true:false};aY.monthCheck=function(e){return(e&&e.match&&e.match(/^\d{2}$/)&&parseInt(e,10)>=1&&parseInt(e,10)<=12)?true:false};aY.holderNameCheck=function(e){return(e&&e.match&&e.match(/\S/))?true:false};var a2=function(t,q){try{k.random.startCollectors()}catch(u){}this.key=t;this.options=q||{};if(typeof this.options.numberIgnoreNonNumeric==="undefined"){this.options.numberIgnoreNonNumeric=true}if(typeof this.options.cvcIgnoreFornumber!=="undefined"){delete this.options.cvcIgnoreFornumber}if(typeof this.options.cvcIgnoreBins==="string"){var y=[];this.options.cvcIgnoreBins.replace(/\d+/g,function(e){if(e.length>0&&!isNaN(parseInt(e,10))){y.push(e)}return e});if(y.length>0){this.options.cvcIgnoreFornumber=new RegExp("^\\s*("+y.join("|")+")")}}else{if(typeof this.options.cvcIgnoreBins!=="undefined"){delete this.options.cvcIgnoreBins}}p("initializeCount")};a2.prototype.createRSAKey=function(){var e=this.key.split("|");if(e.length!=2){throw"Malformed public key"}var u=e[0];var q=e[1];var t=new ak();t.setPublic(q,u);return t};a2.prototype.createAESKey=function(){return new bl()};a2.prototype.encrypt=function(B){var u,t,e,A,z,y,q={number:B.number,cvc:B.cvc,month:B.expiryMonth,year:B.expiryYear};if(this.options.enableValidations!==false&&this.validate(q).valid===false){return false}p("extend",B);u=this.createRSAKey();t=this.createAESKey();e=t.encrypt(JSON.stringify(B));A=k.codec.bytes.fromBits(t.key);z=u.encrypt_b64(A);y="adyenjs_"+a5.version+"$";return[y,z,"$",e].join("")};a2.prototype.validate=function(y){var e={};e.valid=true;if(typeof y==="object"){for(var z in y){if(y.hasOwnProperty(z)){var A=y[z];if(this.options[z+"IgnoreNonNumeric"]){A=A.replace(/\D/g,"")}var t=false;for(var u in y){if(y.hasOwnProperty(u)){var q=this.options[z+"IgnoreFor"+u];if(q&&A&&y[u].match(q)){t=true}}}if(t){e[z]=true;e.valid=e.valid&&e[z];continue}switch(z){case"number":e.number=aY.luhnCheck(A);e.valid=e.valid&&e.number;break;case"year":e.year=aY.yearCheck(A);e.valid=e.valid&&e.year;break;case"cvc":e.cvc=aY.cvcCheck(A);e.valid=e.valid&&e.cvc;break;case"month":e.month=aY.monthCheck(A);e.valid=e.valid&&e.month;break;case"holderName":e.holderName=aY.holderNameCheck(A);e.valid=e.valid&&e.holderName;break;default:e.unknown=e.unknown||[];e.unknown.push(z);e.valid=false}}}}else{e.valid=false}return e};var bl=function(){};bl.prototype={constructor:bl,key:k.random.randomWords(8,0),encrypt:function(e){return this.encryptWithIv(e,k.random.randomWords(3,0))},encryptWithIv:function(z,q){var t,u,e,y;t=new k.cipher.aes(this.key);u=k.codec.utf8String.toBits(z);e=k.mode.ccm.encrypt(t,u,q);y=k.bitArray.concat(q,e);return k.codec.base64.fromBits(y)}}})(this,typeof define==="function"?define:null); \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyenAddon.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/adyenAddon.js new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/b2ccheckoutaddon.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/desktop/common/js/b2ccheckoutaddon.js new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/css/adyenAddon.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/css/adyenAddon.css new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/css/adyenAddon.css @@ -0,0 +1 @@ + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/css/b2ccheckoutaddon.css b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/css/b2ccheckoutaddon.css new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/images/AddImagesHere.txt b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/images/AddImagesHere.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/images/AddImagesHere.txt @@ -0,0 +1 @@ + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.checkout.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.checkout.js new file mode 100644 index 000000000..dcedb3140 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.checkout.js @@ -0,0 +1,24 @@ +ACCMOB.checkout = { + bindAll: function () + { + this.bindCheck(); + }, + + bindCheck: function () + { + $('#checkoutButton').click(function () + { + var expressCheckoutObject = $('.doExpressCheckout'); + if(expressCheckoutObject.is(":checked")) + { + $("#checkoutButton").attr("href", expressCheckoutObject.data("expressCheckoutUrl")) + } + return true; + }); + } +}; + +$(document).ready(function () +{ + ACCMOB.checkout.bindAll(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.silentorderpost.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.silentorderpost.js new file mode 100644 index 000000000..51cfe6c7e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.silentorderpost.js @@ -0,0 +1,157 @@ +ACCMOB.silentorderpost = { + + bindUseDeliveryAddress: function () + { + $('#useDeliveryAddress').on("change", function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + var options = {'countryIsoCode': $('#useDeliveryAddressFields').data('countryisocode'), 'useDeliveryAddress': true}; + ACCMOB.silentorderpost.enableAddressForm(); + ACCMOB.silentorderpost.displayCreditCardAddressForm(options, ACCMOB.silentorderpost.useDeliveryAddressSelected); + } + else + { + ACCMOB.silentorderpost.clearAddressForm(); + ACCMOB.silentorderpost.enableAddressForm(); + } + }); + + if ($('#useDeliveryAddress').is(":checked")) + { + ACCMOB.silentorderpost.disableAddressForm(); + } + + }, + + bindSubmitSilentOrderPostForm: function () + { + $('.submit_silentOrderPostForm').click(function () + { + ACCMOB.common.showPageLoadingMsg(); + $('.billingAddressForm').filter(":hidden").remove(); + ACCMOB.silentorderpost.enableAddressForm(); + $('#silentOrderPostForm').submit(); + }); + }, + + bindCycleFocusEvent: function () + { + $('#lastInTheForm').blur(function () + { + $('#silentOrderPostForm [tabindex$="10"]').focus(); + }) + }, + displayStartDateIssueNum: function () + { + var cardType = $('#silentOrderPostForm [tabindex="1"]').val(); + if (cardType == 'maestro' || cardType == 'switch') + { + $('#startDate').removeAttr('hidden'); + $('#issueNum').removeAttr('hidden'); + } + else + { + $('#startDate').attr('hidden', 'true'); + $('#issueNum').attr('hidden', 'true'); + } + }, + + isEmpty: function (obj) + { + if (typeof obj == 'undefined' || obj === null || obj === '') return true; + return false; + }, + + disableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', true); + $('select[id^="address\\."]').prop('disabled', true); + }, + + enableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', false); + $('select[id^="address\\."]').prop('disabled', false); + }, + + clearAddressForm: function () + { + $('input[id^="address\\."]').val(""); + $('select[id^="address\\."]').val(""); + $('#address\\.country').selectmenu("refresh"); + $('#address\\.region').selectmenu("refresh"); + }, + + useDeliveryAddressSelected: function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + $('#address\\.country').val($('#useDeliveryAddressFields').data('countryisocode')); + ACCMOB.silentorderpost.updateAddressFormElements(); + ACCMOB.silentorderpost.disableAddressForm(); + } + else + { + ACCMOB.silentorderpost.clearAddressForm(); + ACCMOB.silentorderpost.enableAddressForm(); + } + }, + + bindCreditCardAddressForm: function () + { + $('#billingCountrySelector :input').on("change", function () + { + var options = {'countryIsoCode': $(this).val(), 'useDeliveryAddress': false}; + ACCMOB.silentorderpost.displayCreditCardAddressForm(options, ACCMOB.silentorderpost.updateAddressFormElements); + }); + }, + + displayCreditCardAddressForm: function (options, callback) + { + $.ajax({ + url: ACCMOB.config.encodedContextPath + '/checkout/multi/sop/billingaddressform', + async: true, + data: options, + dataType: "html", + beforeSend: function () + { + ACCMOB.common.showPageLoadingMsg(); + } + }).done(function (data) + { + $("#billingAddressForm").html($(data).html()); + if (typeof callback == 'function') + { + callback.call(); + } + ACCMOB.common.hidePageLoadingMsg(); + }); + }, + + updateAddressFormElements: function () + { + $('#address\\.country').selectmenu("refresh"); + $("div.billingAddressForm input[type='checkbox']").checkboxradio(); + $("div.billingAddressForm input[type='text']").textinput(); + $("div.billingAddressForm [data-role=button]").button(); + $("div.billingAddressForm fieldset").controlgroup(); + $("div.billingAddressForm select").selectmenu(); + } +}; + +$(document).ready(function () +{ + with (ACCMOB.silentorderpost) + { + displayStartDateIssueNum(); + $('#silentOrderPostForm [tabindex="1"]').on("change", function () + { + displayStartDateIssueNum(); + }); + bindUseDeliveryAddress(); + bindSubmitSilentOrderPostForm(); + bindCreditCardAddressForm(); + } +}); + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.termsandconditions.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.termsandconditions.js new file mode 100644 index 000000000..6740a7a98 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/accmob.termsandconditions.js @@ -0,0 +1,32 @@ +ACCMOB.termsandconditions = { + + bindTermsAndConditionsLink: function(link) { + link.on('tap', function(event) { + $.colorbox({ + href: getTermsAndConditionsUrl, + width: '100%', + onComplete: function() { + $('#cboxContent .content a').click(function(e) { + // Hash links do not work within a mobile popup + // So instead a jQuery.animate with a scrollTop attribute was used + e.preventDefault(); + $('#cboxLoadedContent').animate({scrollTop:0}, 'slow'); + }); + } + }); + + $(this).parents('label').prev().prop('checked', 'false'); + }); + }, + + initialize: function() { + with(ACCMOB.termsandconditions) { + bindTermsAndConditionsLink($('.termsCheck a')); + } + } +}; + +$(document).ready(function () +{ + ACCMOB.termsandconditions.initialize(); +}); \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/adyenAddon.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/adyenAddon.js new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/adyenAddon.js @@ -0,0 +1 @@ + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/b2ccheckoutaddon.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/mobile/common/js/b2ccheckoutaddon.js new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.checkoutaddress.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.checkoutaddress.js new file mode 100644 index 000000000..d6ee42a6f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.checkoutaddress.js @@ -0,0 +1,57 @@ + +ACC.checkoutaddress = { + + spinner: $(""), + addressID: '', + + showAddressBook: function () + { + $(document).on("click", "#viewAddressBook", function () + { + var data = $("#savedAddressListHolder").html(); + $.colorbox({ + + height: false, + html: data, + onComplete: function () + { + + $(this).colorbox.resize(); + } + }); + + }) + }, + + showRemoveAddressConfirmation: function () + { + $(document).on("click", ".removeAddressButton", function () + { + var addressId = $(this).data("addressId"); + $.colorbox({ + inline: true, + height: false, + href: "#popup_confirm_address_removal_" + addressId, + onComplete: function () + { + + $(this).colorbox.resize(); + } + }); + + }) + } +} + +// Address Verification +$(document).ready(function () +{ + with (ACC.checkoutaddress) + { + + showAddressBook(); + showRemoveAddressConfirmation(); + } +}); + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.hopdebug.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.hopdebug.js new file mode 100644 index 000000000..79223ae29 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.hopdebug.js @@ -0,0 +1,23 @@ +ACC.hopdebug = { + + bindAll: function () + { + this.bindShowDebugMode(); + }, + + bindShowDebugMode: function () + { + var debugModeEnabled = $('#hopDebugMode').data("hopDebugMode"); + + if (!debugModeEnabled && !$('#showDebugPage').attr('value')) + { + $('#hostedOrderPagePostForm').submit(); + } + } +}; + + +$(document).ready(function () +{ + ACC.hopdebug.bindAll(); +}); \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.payment.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.payment.js new file mode 100644 index 000000000..fca9121ee --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.payment.js @@ -0,0 +1,61 @@ +ACC.payment = { + + activateSavedPaymentButton: function(){ + + $(document).on("click",".js-saved-payments",function(e){ + e.preventDefault(); + + var title = $("#savedpaymentstitle").html(); + + $.colorbox({ + href: "#savedpaymentsbody", + inline:true, + maxWidth:"100%", + opacity:0.7, + width:"320px", + title: title, + close:'', + onComplete: function(){ + } + }); + }) + }, + bindPaymentCardTypeSelect: function () + { + ACC.payment.filterCardInformationDisplayed(); + $("#card_cardType").change(function () + { + var cardType = $(this).val(); + if (cardType == '024') + { + $('#startDate, #issueNum').show(); + } + else + { + $('#startDate, #issueNum').hide(); + } + }); + }, + filterCardInformationDisplayed: function () + { + var cardType = $('#card_cardType').val(); + if (cardType == '024') + { + $('#startDate, #issueNum').show(); + } + else + { + $('#startDate, #issueNum').hide(); + } + } +} + +$(document).ready(function () { + with (ACC.payment) { + activateSavedPaymentButton(); + bindPaymentCardTypeSelect(); + } +}); + + + diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.silentorderpost.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.silentorderpost.js new file mode 100644 index 000000000..a873ecf74 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.silentorderpost.js @@ -0,0 +1,137 @@ +ACC.silentorderpost = { + + spinner: $(""), + + bindUseDeliveryAddress: function () + { + $('#useDeliveryAddress').on('change', function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + var options = {'countryIsoCode': $('#useDeliveryAddressData').data('countryisocode'), 'useDeliveryAddress': true}; + ACC.silentorderpost.enableAddressForm(); + ACC.silentorderpost.displayCreditCardAddressForm(options, ACC.silentorderpost.useDeliveryAddressSelected); + ACC.silentorderpost.disableAddressForm(); + } + else + { + ACC.silentorderpost.clearAddressForm(); + ACC.silentorderpost.enableAddressForm(); + } + }); + + if ($('#useDeliveryAddress').is(":checked")) + { + var options = {'countryIsoCode': $('#useDeliveryAddressData').data('countryisocode'), 'useDeliveryAddress': true}; + ACC.silentorderpost.enableAddressForm(); + ACC.silentorderpost.displayCreditCardAddressForm(options, ACC.silentorderpost.useDeliveryAddressSelected); + ACC.silentorderpost.disableAddressForm(); + } + }, + + bindSubmitSilentOrderPostForm: function () + { + $('.submit_silentOrderPostForm').click(function () + { + ACC.common.blockFormAndShowProcessingMessage($(this)); + $('.billingAddressForm').filter(":hidden").remove(); + ACC.silentorderpost.enableAddressForm(); + $('#silentOrderPostForm').submit(); + }); + }, + + bindCycleFocusEvent: function () + { + $('#lastInTheForm').blur(function () + { + $('#silentOrderPostForm [tabindex$="10"]').focus(); + }) + }, + + isEmpty: function (obj) + { + if (typeof obj == 'undefined' || obj === null || obj === '') return true; + return false; + }, + + disableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', true); + $('select[id^="address\\."]').prop('disabled', true); + }, + + enableAddressForm: function () + { + $('input[id^="address\\."]').prop('disabled', false); + $('select[id^="address\\."]').prop('disabled', false); + }, + + clearAddressForm: function () + { + $('input[id^="address\\."]').val(""); + $('select[id^="address\\."]').val(""); + }, + + useDeliveryAddressSelected: function () + { + if ($('#useDeliveryAddress').is(":checked")) + { + $('#address\\.country').val($('#useDeliveryAddressData').data('countryisocode')); + ACC.silentorderpost.disableAddressForm(); + } + else + { + ACC.silentorderpost.clearAddressForm(); + ACC.silentorderpost.enableAddressForm(); + } + }, + + + + bindCreditCardAddressForm: function () + { + $('#billingCountrySelector :input').on("change", function () + { + var countrySelection = $(this).val(); + var options = { + 'countryIsoCode': countrySelection, + 'useDeliveryAddress': false + }; + ACC.silentorderpost.displayCreditCardAddressForm(options); + }) + }, + + displayCreditCardAddressForm: function (options, callback) + { + $.ajax({ + url: ACC.config.encodedContextPath + '/checkout/multi/sop/billingaddressform', + async: true, + data: options, + dataType: "html", + beforeSend: function () + { + $('#billingAddressForm').html(ACC.silentorderpost.spinner); + } + }).done(function (data) + { + $("#billingAddressForm").html(data); + if (typeof callback == 'function') + { + callback.call(); + } + }); + } +} + +$(document).ready(function () +{ + with (ACC.silentorderpost) + { + bindUseDeliveryAddress() + bindSubmitSilentOrderPostForm(); + bindCreditCardAddressForm(); + } + + // check the checkbox + $("#useDeliveryAddress").click(); +}); diff --git a/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.termsandconditions.js b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.termsandconditions.js new file mode 100644 index 000000000..085f4ae76 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/acc.termsandconditions.js @@ -0,0 +1,29 @@ +ACC.termsandconditions = { + + bindTermsAndConditionsLink: function() { + $(document).on("click",".termsAndConditionsLink",function(e) { + e.preventDefault(); + $.colorbox({ + maxWidth:"100%", + maxHeight:"80%", + width:"870px", + scrolling:true, + href: $(this).attr("href"), + close:'', + title:'
    Terms and Conditions
    ', + onComplete: function() { + ACC.common.refreshScreenReaderBuffer(); + }, + onClosed: function() { + ACC.common.refreshScreenReaderBuffer(); + } + }); + }); + } +} + +$(function(){ + with(ACC.termsandconditions) { + bindTermsAndConditionsLink(); + } +}); diff --git a/bin/custom/adyen/adyenAddon/buildcallbacks.xml b/bin/custom/adyen/adyenAddon/buildcallbacks.xml new file mode 100644 index 000000000..98ede8ea6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/buildcallbacks.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/extensioninfo.xml b/bin/custom/adyen/adyenAddon/extensioninfo.xml new file mode 100644 index 000000000..4042087b6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/extensioninfo.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/external-dependencies.xml b/bin/custom/adyen/adyenAddon/external-dependencies.xml new file mode 100644 index 000000000..c9b5a8d03 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/external-dependencies.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + de.hybris.platform + adyenAddon + 5.0.0.0-SNAPSHOT + + jar + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/css/dummy.txt b/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/css/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/images/dummy.txt b/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/images/dummy.txt new file mode 100644 index 000000000..2995a4d0e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/images/dummy.txt @@ -0,0 +1 @@ +dummy \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/js/dummy.txt b/bin/custom/adyen/adyenAddon/hmc/jsp/ext/adyenAddon/js/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_de.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_de.properties new file mode 100644 index 000000000..94b4fe65b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_de.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon (Muster) + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_en.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_en.properties new file mode 100644 index 000000000..033c3828d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_en.properties @@ -0,0 +1,7 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon sample + +adyen.attributes=Adyen Configuration +adyen.setting=Adyen Setting +adyen.api.integration.setting=Adyen API Setting +adyen.hpp.integration.setting=Adyen HPP Setting diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es.properties new file mode 100644 index 000000000..9490d520b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=Ejemplo de adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es_CO.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es_CO.properties new file mode 100644 index 000000000..9490d520b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_es_CO.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=Ejemplo de adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_fr.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_fr.properties new file mode 100644 index 000000000..ff28e7199 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_fr.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=Exemple adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_hi.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_hi.properties new file mode 100644 index 000000000..e3a285e74 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_hi.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon का उदाहरण + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_id.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_id.properties new file mode 100644 index 000000000..86e20a9ee --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_id.properties @@ -0,0 +1,3 @@ +adyenAddongroup=pengaya y +adyenAddonnode=contoh pengaya y + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_it.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_it.properties new file mode 100644 index 000000000..85846693d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_it.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=campione adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ja.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ja.properties new file mode 100644 index 000000000..b82d2bf11 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ja.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon サンプル + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ko.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ko.properties new file mode 100644 index 000000000..96c85c0d7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ko.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon 샘플 + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_pt.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_pt.properties new file mode 100644 index 000000000..17ddb0950 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_pt.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=amostra adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ru.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ru.properties new file mode 100644 index 000000000..07f18ede9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_ru.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=образец adyenAddon + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh.properties new file mode 100644 index 000000000..3a041baa3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon 示例 + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh_TW.properties b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh_TW.properties new file mode 100644 index 000000000..0c2147a7e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/com/adyen/storefront/hmc/locales_zh_TW.properties @@ -0,0 +1,3 @@ +adyenAddongroup=adyenAddon +adyenAddonnode=adyenAddon 範例 + diff --git a/bin/custom/adyen/adyenAddon/hmc/resources/hmc.xml b/bin/custom/adyen/adyenAddon/hmc/resources/hmc.xml new file mode 100644 index 000000000..12ce065c0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/resources/hmc.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + +
    +
    + + + + + +
    +
    +
    +
    +
    +
    diff --git a/bin/custom/adyen/adyenAddon/hmc/src/com/adyen/storefront/hmc/AdyenAddonHMCExtension.java b/bin/custom/adyen/adyenAddon/hmc/src/com/adyen/storefront/hmc/AdyenAddonHMCExtension.java new file mode 100644 index 000000000..e3b764447 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/hmc/src/com/adyen/storefront/hmc/AdyenAddonHMCExtension.java @@ -0,0 +1,107 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.hmc; + +import de.hybris.platform.hmc.AbstractEditorMenuChip; +import de.hybris.platform.hmc.AbstractExplorerMenuTreeNodeChip; +import de.hybris.platform.hmc.EditorTabChip; +import de.hybris.platform.hmc.extension.HMCExtension; +import de.hybris.platform.hmc.extension.MenuEntrySlotEntry; +import de.hybris.platform.hmc.generic.ClipChip; +import de.hybris.platform.hmc.generic.ToolbarActionChip; +import de.hybris.platform.hmc.webchips.Chip; +import de.hybris.platform.hmc.webchips.DisplayState; + +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.ResourceBundle; + +import org.apache.log4j.Logger; + + +/** + * Provides necessary meta information about the adyenAddon hmc extension. + * + * + * @version ExtGen v5.5.0.0-M3 + */ +public class AdyenAddonHMCExtension extends HMCExtension +{ + /** Edit the local|project.properties to change logging behavior (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenAddonHMCExtension.class.getName()); + + /** Path to the resource bundles. */ + public final static String RESOURCE_PATH = "com.adyen.storefront.hmc.locales"; + + + /** + * @see HMCExtension#getTreeNodeChips(de.hybris.platform.hmc.webchips.DisplayState, + * de.hybris.platform.hmc.webchips.Chip) + */ + @Override + public List getTreeNodeChips(final DisplayState displayState, final Chip parent) + { + return Collections.EMPTY_LIST; + } + + /** + * @see HMCExtension#getMenuEntrySlotEntries(de.hybris.platform.hmc.webchips.DisplayState, + * de.hybris.platform.hmc.webchips.Chip) + */ + @Override + public List getMenuEntrySlotEntries(final DisplayState displayState, final Chip parent) + { + return Collections.EMPTY_LIST; + } + + /** + * @see HMCExtension#getSectionChips(de.hybris.platform.hmc.webchips.DisplayState, + * de.hybris.platform.hmc.generic.ClipChip) + */ + @Override + public List getSectionChips(final DisplayState displayState, final ClipChip parent) + { + return Collections.EMPTY_LIST; + } + + @Override + public List getEditorTabChips(final DisplayState displayState, final AbstractEditorMenuChip parent) + { + return Collections.EMPTY_LIST; + } + + /** + * @see HMCExtension#getToolbarActionChips(de.hybris.platform.hmc.webchips.DisplayState, + * de.hybris.platform.hmc.webchips.Chip) + */ + @Override + public List getToolbarActionChips(final DisplayState displayState, final Chip parent) + { + return Collections.EMPTY_LIST; + } + + @Override + public ResourceBundle getLocalizeResourceBundle(final Locale locale) + { + return null; + } + + @Override + public String getResourcePath() + { + return RESOURCE_PATH; + } +} diff --git a/bin/custom/adyen/adyenAddon/project.properties b/bin/custom/adyen/adyenAddon/project.properties new file mode 100644 index 000000000..06f3cb470 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/project.properties @@ -0,0 +1,33 @@ +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2014 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + +adyenAddon.key=value + +# Specifies the location of the spring context file putted automatically to the global platform application context. +adyenAddon.application-context=adyenAddon-spring.xml + +storefront.supportedUiExperienceLevels.apparel-uk=DESKTOP + +adyenstorefront.additionalWebSpringConfigs.adyenAddon=classpath:/adyenAddon/web/spring/adyenAddon-web-spring.xml +#yb2bacceleratorstorefront.additionalWebSpringConfigs.adyenAddon=classpath:/adyenAddon/web/spring/adyenAddon-web-spring.xml + +adyenAddon.javascript.paths.desktop=/desktop/common/js/adyenAddon.js;/desktop/common/js/acc.checkoutcartdetails.js;/desktop/common/js/acc.checkoutpickupdetails.js;/desktop/common/js/acc.deliverymodedescription.js;/desktop/common/js/acc.hopdebug.js;/desktop/common/js/acc.payment.js;/desktop/common/js/acc.placeorder.js;/desktop/common/js/acc.removepaymentdetails.js;/desktop/common/js/acc.silentorderpost.js;/desktop/common/js/acc.updatebillingaddress.js;/desktop/common/js/acc.termsandconditions.js;/desktop/common/js/acc.checkoutaddress.js +adyenAddon.javascript.paths.mobile=/mobile/common/js/adyenAddon.js;/mobile/common/js/accmob.checkout.js;/mobile/common/js/accmob.silentorderpost.js;/mobile/common/js/accmob.termsandconditions.js +adyenAddon.javascript.paths.responsive=/responsive/common/js/acc.checkoutaddress.js;/responsive/common/js/acc.termsandconditions.js;/responsive/common/js/acc.silentorderpost.js;/responsive/common/js/acc.payment.js;/responsive/common/js/acc.hopdebug.js + +adyenAddon.css.paths.desktop=/desktop/common/css/adyenAddon.css;/desktop/common/css/checkoutContentPanel.css;/desktop/common/css/checkoutOrderDetails.css;/desktop/common/css/checkoutProgress.css +adyenAddon.css.paths.mobile=/mobile/common/css/adyenAddon.css diff --git a/bin/custom/adyen/adyenAddon/project.properties.template b/bin/custom/adyen/adyenAddon/project.properties.template new file mode 100644 index 000000000..a8389bcfb --- /dev/null +++ b/bin/custom/adyen/adyenAddon/project.properties.template @@ -0,0 +1,35 @@ +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2015 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + +adyenAddon.key=value + +# Specifies the location of the spring context file added automatically to the global platform application context. +adyenAddon.application-context=adyenAddon-spring.xml + +yacceleratorstorefront.additionalWebSpringConfigs.adyenAddon=classpath:/adyenAddon/web/spring/adyenAddon-web-spring.xml +yb2bacceleratorstorefront.additionalWebSpringConfigs.adyenAddon=classpath:/adyenAddon/web/spring/adyenAddon-web-spring.xml + +storefront.supportedUiExperienceLevels.electronics=DESKTOP,MOBILE +storefront.supportedUiExperienceLevels.apparel-uk=DESKTOP,MOBILE +storefront.supportedUiExperienceLevels.apparel-de=DESKTOP,MOBILE +storefront.supportedUiExperienceLevels.powertools=DESKTOP + + +adyenAddon.javascript.paths.desktop=/desktop/common/js/adyenAddon.js +adyenAddon.javascript.paths.mobile=/desktop/common/js/adyenAddon.js +adyenAddon.css.paths.desktop=/desktop/common/css/adyenAddon.css +adyenAddon.css.paths.mobile=/mobile/common/css/adyenAddon.css diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon-beans.xml b/bin/custom/adyen/adyenAddon/resources/adyenAddon-beans.xml new file mode 100644 index 000000000..21a6c75bd --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon-beans.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon-items.xml b/bin/custom/adyen/adyenAddon/resources/adyenAddon-items.xml new file mode 100644 index 000000000..53361b1d4 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon-items.xml @@ -0,0 +1,50 @@ + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon-spring.xml b/bin/custom/adyen/adyenAddon/resources/adyenAddon-spring.xml new file mode 100644 index 000000000..f09b98e1c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon-spring.xml @@ -0,0 +1,94 @@ + + + + + + + + + B2C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class + + org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader + + UTF-8 + UTF-8 + + + + + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon.build.number b/bin/custom/adyen/adyenAddon/resources/adyenAddon.build.number new file mode 100644 index 000000000..2851456e7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon.build.number @@ -0,0 +1,9 @@ +#Ant properties +#Thu Jan 29 23:39:45 CET 2015 +builddate=20150129 2339 +description=adyenAddon +name=adyenAddon +releasedate=20150128 1159 +vendor=hybris +version=5.5.0.0-M3 +version.api=5.5.0 diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cmscockpit/cmscockpit-users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cmscockpit/cmscockpit-users.impex new file mode 100644 index 000000000..05fa2f5c3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cmscockpit/cmscockpit-users.impex @@ -0,0 +1,4 @@ + +$passwordEncoding=md5 +$defaultPassword=1234 +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cscockpit/cscockpit-users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cscockpit/cscockpit-users.impex new file mode 100644 index 000000000..e5bead44d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/cscockpit/cscockpit-users.impex @@ -0,0 +1,3 @@ +$passwordEncoding=md5 +$defaultPassword=1234 +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/productcockpit/productcockpit-users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/productcockpit/productcockpit-users.impex new file mode 100644 index 000000000..05fa2f5c3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/productcockpit/productcockpit-users.impex @@ -0,0 +1,4 @@ + +$passwordEncoding=md5 +$defaultPassword=1234 +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/reportcockpit/reportcockpit-mcc-links.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/reportcockpit/reportcockpit-mcc-links.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/reportcockpit/reportcockpit-users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/reportcockpit/reportcockpit-users.impex new file mode 100644 index 000000000..e5bead44d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/cockpits/reportcockpit/reportcockpit-users.impex @@ -0,0 +1,3 @@ +$passwordEncoding=md5 +$defaultPassword=1234 +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/common/common-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/common/common-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/common/user-groups.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/common/user-groups.impex new file mode 100644 index 000000000..a3eec23dc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/common/user-groups.impex @@ -0,0 +1,6 @@ +$regulargroup=regulargroup +$customergroup=customergroup + +$passwordEncoding=md5 +$defaultPassword=12341234 +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-content.impex new file mode 100644 index 000000000..4eb370ddf --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=apparel-deContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-mobile-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-mobile-content.impex new file mode 100644 index 000000000..4eb370ddf --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/cms-mobile-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=apparel-deContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/email-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/email-content.impex new file mode 100644 index 000000000..d8d99f9f0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-deContentCatalog/email-content.impex @@ -0,0 +1,2 @@ +$contentCatalog=apparel-deContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-content.impex new file mode 100644 index 000000000..c2807bdcf --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=apparel-ukContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-mobile-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-mobile-content.impex new file mode 100644 index 000000000..c2807bdcf --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/cms-mobile-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=apparel-ukContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/email-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/email-content.impex new file mode 100644 index 000000000..c2eaf1621 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/apparel-ukContentCatalog/email-content.impex @@ -0,0 +1,2 @@ +$contentCatalog=apparel-ukContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-content.impex new file mode 100644 index 000000000..33ea992b7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=electronicsContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-mobile-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-mobile-content.impex new file mode 100644 index 000000000..33ea992b7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/cms-mobile-content.impex @@ -0,0 +1,3 @@ +$contentCatalog=electronicsContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCms=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/email-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/email-content.impex new file mode 100644 index 000000000..5b9a94d07 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/electronicsContentCatalog/email-content.impex @@ -0,0 +1,2 @@ +$contentCatalog=electronicsContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/catalog.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/catalog.impex new file mode 100644 index 000000000..81259f90f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/catalog.impex @@ -0,0 +1,9 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * productCatalog = product catalog id +## * siteUid - site id +## * storeUid - id of the store +## * channel - site channel; B2B or B2C +####### diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content-mobile.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content-mobile.impex new file mode 100644 index 000000000..2a37f6fb1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content-mobile.impex @@ -0,0 +1,10 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * addonExtensionName - extension name of the ui addon +####### + +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCmsCockpit=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content.impex new file mode 100644 index 000000000..2a37f6fb1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/cms-content.impex @@ -0,0 +1,10 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * addonExtensionName - extension name of the ui addon +####### + +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCmsCockpit=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/email-content.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/email-content.impex new file mode 100644 index 000000000..910513ab1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/contentCatalogs/template/email-content.impex @@ -0,0 +1,9 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * addonExtensionName - extension name of the ui addon +####### + +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$jarResourceCmsCockpit=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/cockpit/cmscockpit diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-classifications.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-classifications.impex new file mode 100644 index 000000000..b4dcd5d2e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-classifications.impex @@ -0,0 +1,4 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$classCatalogVersion=catalogversion(catalog(id[default='ElectronicsClassification']),version[default='1.0'])[unique=true,default='ElectronicsClassification:1.0'] +$classSystemVersion=systemVersion(catalog(id[default='ElectronicsClassification']),version[default='1.0'])[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-media.impex new file mode 100644 index 000000000..65d6b8482 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories-media.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$thumbnail=thumbnail(code, $catalogVersion) +$picture=picture(code, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories.impex new file mode 100644 index 000000000..db75904b9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/categories.impex @@ -0,0 +1,5 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=source(code, $catalogVersion)[unique=true] +$categories=target(code, $catalogVersion)[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/classifications-units.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/classifications-units.impex new file mode 100644 index 000000000..e4a954c37 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/classifications-units.impex @@ -0,0 +1 @@ +$systemVersion=systemVersion(catalog(id[default='ApparelClassification']),version[default='1.0']) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-classifications.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-classifications.impex new file mode 100644 index 000000000..fcc0bd793 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-classifications.impex @@ -0,0 +1,6 @@ +#% impex.setLocale(Locale.ENGLISH); + +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$clAttrModifiers=system='ElectronicsClassification',version='1.0',translator=de.hybris.platform.catalog.jalo.classification.impex.ClassificationAttributeTranslator,lang=en diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-fixup.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-fixup.impex new file mode 100644 index 000000000..24bf8fdbc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-fixup.impex @@ -0,0 +1,7 @@ +# Macros / Replacement Parameter definitions +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$baseProduct=baseProduct(code, catalogVersion(catalog(id[default='$productCatalog']),version[default='Staged'])) +$categories=source(code, $catalogVersion)[unique=true] +$products=target(code, $catalogVersion)[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-media.impex new file mode 100644 index 000000000..842a98ec8 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-media.impex @@ -0,0 +1,12 @@ +$productCatalog=apparelProductCatalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$thumbnail=thumbnail(code, $catalogVersion) +$picture=picture(code, $catalogVersion) +$thumbnails=thumbnails(code, $catalogVersion) +$detail=detail(code, $catalogVersion) +$normal=normal(code, $catalogVersion) +$others=others(code, $catalogVersion) +$data_sheet=data_sheet(code, $catalogVersion) +$medias=medias(code, $catalogVersion) +$galleryImages=galleryImages(qualifier, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-pos-stocklevels.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-pos-stocklevels.impex new file mode 100644 index 000000000..a982c489e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-pos-stocklevels.impex @@ -0,0 +1,4 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$vendor=apparello diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-prices.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-prices.impex new file mode 100644 index 000000000..0c512b34a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-prices.impex @@ -0,0 +1,10 @@ +#% impex.setLocale( Locale.GERMAN ); + +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default='$productCatalog:Staged'] +$prices=Europe1prices[translator=de.hybris.platform.europe1.jalo.impex.Europe1PricesTranslator] +$taxGroup=Europe1PriceFactory_PTG(code)[default=jp-vat-full] + +# Set product approval status to Approved only for those products that have prices. +$approved=approvalstatus(code)[default='approved'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-relations.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-relations.impex new file mode 100644 index 000000000..d2ea6bb6f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-relations.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=supercategories(code, $catalogVersion) +$baseProduct=baseProduct(code,$catalogVersion) +$approved=approvalstatus(code)[default='check'] + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-stocklevels.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-stocklevels.impex new file mode 100644 index 000000000..a982c489e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-stocklevels.impex @@ -0,0 +1,4 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$vendor=apparello diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-tax.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products-tax.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products.impex new file mode 100644 index 000000000..71a76bbc6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/products.impex @@ -0,0 +1,6 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=supercategories(code, $catalogVersion) +$baseProduct=baseProduct(code,$catalogVersion) +$approved=approvalstatus(code)[default='check'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/reviews.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/reviews.impex new file mode 100644 index 000000000..0ebbf69d9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/reviews.impex @@ -0,0 +1,6 @@ +$catalog-Online=Online +$product-catalog=apparelProductCatalog +$productCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$product-catalog]),CatalogVersion.version[default=$catalog-Online])[default=$product-catalog:$catalog-Online] +$passwordEncoding=md5 +$defaultPassword=password +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers-media.impex new file mode 100644 index 000000000..766f1bc78 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers-media.impex @@ -0,0 +1,6 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$superCategories=superCategories(code, $catalogVersion) +$thumbnail=thumbnail(code, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers.impex new file mode 100644 index 000000000..44488996c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/suppliers.impex @@ -0,0 +1,4 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$superCategories=superCategories(code, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/users.impex new file mode 100644 index 000000000..332eaee01 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/apparelProductCatalog/users.impex @@ -0,0 +1,6 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$stagedCatalogVersion=target(CatalogVersion.catalog(id[default=$productCatalog]),CatalogVersion.version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$onlineCatalogVersion=target(CatalogVersion.catalog(id[default=$productCatalog]),CatalogVersion.version[default='Online'])[unique=true,default=$productCatalog:Online] +$classificationSystem=ElectronicsClassification +$classificationSystemVersion=target(CatalogVersion.catalog(id[default=$classificationSystem]),CatalogVersion.version[default='1.0'])[unique=true,default=$classificationSystem:1.0] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-classifications.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-classifications.impex new file mode 100644 index 000000000..ff7137800 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-classifications.impex @@ -0,0 +1,4 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$classCatalogVersion=catalogversion(catalog(id[default='ElectronicsClassification']),version[default='1.0'])[unique=true,default='ElectronicsClassification:1.0'] +$classSystemVersion=systemVersion(catalog(id[default='ElectronicsClassification']),version[default='1.0'])[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-media.impex new file mode 100644 index 000000000..8e5a835f7 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories-media.impex @@ -0,0 +1,7 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$thumbnail=thumbnail(code, $catalogVersion) +$picture=picture(code, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories.impex new file mode 100644 index 000000000..5f0f1c109 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/categories.impex @@ -0,0 +1,5 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=source(code, $catalogVersion)[unique=true] +$categories=target(code, $catalogVersion)[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/classifications-units.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/classifications-units.impex new file mode 100644 index 000000000..fcf851e12 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/classifications-units.impex @@ -0,0 +1 @@ +$systemVersion=systemVersion(catalog(id[default='ElectronicsClassification']),version[default='1.0']) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-classifications.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-classifications.impex new file mode 100644 index 000000000..954394c3b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-classifications.impex @@ -0,0 +1,7 @@ +#% impex.setLocale(Locale.ENGLISH); + +# Macros / Replacement Parameter definitions +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$clAttrModifiers=system='ElectronicsClassification',version='1.0',translator=de.hybris.platform.catalog.jalo.classification.impex.ClassificationAttributeTranslator,lang=en diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-fixup.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-fixup.impex new file mode 100644 index 000000000..35d117866 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-fixup.impex @@ -0,0 +1,7 @@ +# Macros / Replacement Parameter definitions +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$baseProduct=baseProduct(code, catalogVersion(catalog(id[default='$productCatalog']),version[default='Staged'])) +$categories=source(code, $catalogVersion)[unique=true] +$products=target(code, $catalogVersion)[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-media.impex new file mode 100644 index 000000000..660ee308f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-media.impex @@ -0,0 +1,12 @@ +$productCatalog=electronicsProductCatalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$thumbnail=thumbnail(code, $catalogVersion) +$picture=picture(code, $catalogVersion) +$thumbnails=thumbnails(code, $catalogVersion) +$detail=detail(code, $catalogVersion) +$normal=normal(code, $catalogVersion) +$others=others(code, $catalogVersion) +$data_sheet=data_sheet(code, $catalogVersion) +$medias=medias(code, $catalogVersion) +$galleryImages=galleryImages(qualifier, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-pos-stocklevels.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-pos-stocklevels.impex new file mode 100644 index 000000000..f5af2cf61 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-pos-stocklevels.impex @@ -0,0 +1,4 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$vendor=electro diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-prices.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-prices.impex new file mode 100644 index 000000000..79a718701 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-prices.impex @@ -0,0 +1,9 @@ +#% impex.setLocale( Locale.GERMAN ); + +$productCatalog=electronicsProductCatalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default='$productCatalog:Staged'] +$prices=Europe1prices[translator=de.hybris.platform.europe1.jalo.impex.Europe1PricesTranslator] +$taxGroup=Europe1PriceFactory_PTG(code)[default=jp-vat-full] + +# Set product approval status to Approved only for those products that have prices. +$approved=approvalstatus(code)[default='approved'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-relations.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-relations.impex new file mode 100644 index 000000000..7e38fd7f9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-relations.impex @@ -0,0 +1,7 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=supercategories(code, $catalogVersion) +$baseProduct=baseProduct(code,$catalogVersion) +$approved=approvalstatus(code)[default='check'] + diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-stocklevels.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-stocklevels.impex new file mode 100644 index 000000000..f5af2cf61 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-stocklevels.impex @@ -0,0 +1,4 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$vendor=electro diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-tax.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products-tax.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products.impex new file mode 100644 index 000000000..952ed3923 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/products.impex @@ -0,0 +1,6 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$supercategories=supercategories(code, $catalogVersion) +$baseProduct=baseProduct(code,$catalogVersion) +$approved=approvalstatus(code)[default='check'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/reviews.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/reviews.impex new file mode 100644 index 000000000..6adf857d0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/reviews.impex @@ -0,0 +1,6 @@ +$catalog-Online=Online +$product-catalog=electronicsProductCatalog +$productCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$product-catalog]),CatalogVersion.version[default=$catalog-Online])[default=$product-catalog:$catalog-Online] +$passwordEncoding=md5 +$defaultPassword=password +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers-media.impex new file mode 100644 index 000000000..3a00e63c0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers-media.impex @@ -0,0 +1,6 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$superCategories=superCategories(code, $catalogVersion) +$thumbnail=thumbnail(code, $catalogVersion) +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/productCatalogs/$productCatalog diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers.impex new file mode 100644 index 000000000..2f897c69b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/suppliers.impex @@ -0,0 +1,4 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$superCategories=superCategories(code, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/users.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/users.impex new file mode 100644 index 000000000..ba03f3999 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/electronicsProductCatalog/users.impex @@ -0,0 +1,5 @@ +$productCatalog=electronicsProductCatalog +$stagedCatalogVersion=target(CatalogVersion.catalog(id[default=$productCatalog]),CatalogVersion.version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$onlineCatalogVersion=target(CatalogVersion.catalog(id[default=$productCatalog]),CatalogVersion.version[default='Online'])[unique=true,default=$productCatalog:Online] +$classificationSystem=ElectronicsClassification +$classificationSystemVersion=target(CatalogVersion.catalog(id[default=$classificationSystem]),CatalogVersion.version[default='1.0'])[unique=true,default=$classificationSystem:1.0] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/template/catalog.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/template/catalog.impex new file mode 100644 index 000000000..c5a435c4d --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/productCatalogs/template/catalog.impex @@ -0,0 +1,9 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * productCatalog = product catalog id +## * storeUid - site id +## * storeUid - id of the store +## * channel - site channel +####### diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/solr/template/solr.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/solr/template/solr.impex new file mode 100644 index 000000000..ca8539197 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/solr/template/solr.impex @@ -0,0 +1,16 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * productCatalog = product catalog id +## * siteUid - site id +####### + +$catalogVersions=catalogVersions(catalog(id),version); +$serverConfigName=$siteUidSolrServerConfig +$indexConfigName=$siteUidSolrIndexConfig +$searchConfigName=$siteUidPageSize +$facetSearchConfigName=$siteUidIndex +$facetSearchConfigDescription=$siteUid Solr Index +$searchIndexNamePrefix=$siteUid +$solrIndexedType=$siteUidProductType +$indexBaseSite=$siteUid diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/solr/template/solrtrigger.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/solr/template/solrtrigger.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/btg.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/btg.impex new file mode 100644 index 000000000..945200c57 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/btg.impex @@ -0,0 +1,5 @@ +$contentCatalog=apparel-deContentCatalog +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$productCatalogVersion=catalogVersion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true] +$contentCatalogVersion=catalogVersion(catalog(id[default=$contentCatalog]),version[default='Staged'])[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service-media.impex new file mode 100644 index 000000000..e35e5938f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service-media.impex @@ -0,0 +1,6 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$media=@media[translator=de.hybris.platform.impex.jalo.media.MediaDataTranslator] +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/stores/apparel-de +$medias=medias(code, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service.impex new file mode 100644 index 000000000..23432e217 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/points-of-service.impex @@ -0,0 +1,7 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=apparel-de +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$storeImage=storeImage(qualifier, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/promotions.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/promotions.impex new file mode 100644 index 000000000..3b17ad82e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/promotions.impex @@ -0,0 +1,7 @@ +#% impex.setLocale( Locale.GERMAN ); + +$defaultPromoGrp=apparelDEPromoGrp +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$productCatalog]),CatalogVersion.version[default=Online])[default=$productCatalog:Online] +$regulargroup=regulargroup diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/reviews.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/reviews.impex new file mode 100644 index 000000000..48e595d65 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/reviews.impex @@ -0,0 +1,7 @@ +$catalog-Online=Online +$product-catalog=apparelProductCatalog +$productCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$product-catalog]),CatalogVersion.version[default=$catalog-Online])[default=$product-catalog:$catalog-Online] +$passwordEncoding=md5 +$defaultPassword=password +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Online'])[unique=true,default=$productCatalog:Online] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/site.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/site.impex new file mode 100644 index 000000000..15033cb20 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/site.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$contentCatalog=apparel-deContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$defaultLanguage=en +$storeUid=apparel-de +$siteUid=apparel-de +$webServiceSiteUid=$siteUidWS diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/solr.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/solr.impex new file mode 100644 index 000000000..cb568259f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/solr.impex @@ -0,0 +1,12 @@ +$productCatalog=apparelProductCatalog +$catalogVersions=catalogVersions(catalog(id),version); +$serverConfigName=apparel-deSolrServerConfig +$indexConfigName=apparel-deSolrIndexConfig +$searchConfigName=apparel-dePageSize +$facetSearchConfigName=apparel-deIndex +$facetSearchConfigDescription=Apparel DE Solr Index +$searchIndexNamePrefix=apparel-de +$solrIndexedType=apparel-ukProductType +$indexBaseSite=apparel-de +$indexLanguages=de +$indexCurrencies=EUR diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/store.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/store.impex new file mode 100644 index 000000000..7d0e71231 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/store.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$currencies=EUR +$net=false +$storeUid=apparel-de +$defaultCurrency=EUR +$languages=de +$defaultLanguage=de diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/warehouses.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/warehouses.impex new file mode 100644 index 000000000..456c7befd --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-de/warehouses.impex @@ -0,0 +1,3 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=apparel-de diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/btg.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/btg.impex new file mode 100644 index 000000000..7e20b25a9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/btg.impex @@ -0,0 +1,5 @@ +$contentCatalog=apparel-ukContentCatalog +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$productCatalogVersion=catalogVersion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true] +$contentCatalogVersion=catalogVersion(catalog(id[default=$contentCatalog]),version[default='Staged'])[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service-media.impex new file mode 100644 index 000000000..b0ee35158 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service-media.impex @@ -0,0 +1,6 @@ +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$media=@media[translator=de.hybris.platform.impex.jalo.media.MediaDataTranslator] +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/stores/apparel-uk +$medias=medias(code, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service.impex new file mode 100644 index 000000000..5550ebda9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/points-of-service.impex @@ -0,0 +1,7 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=apparel-uk +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$storeImage=storeImage(qualifier, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/promotions.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/promotions.impex new file mode 100644 index 000000000..d31e6b67e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/promotions.impex @@ -0,0 +1,7 @@ +#% impex.setLocale( Locale.GERMAN ); + +$defaultPromoGrp=apparelUKPromoGrp +$productCatalog=apparelProductCatalog +$productCatalogName=Apparel Product Catalog +$catalogVersion=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$productCatalog]),CatalogVersion.version[default=Online])[default=$productCatalog:Online] +$regulargroup=regulargroup diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/reviews.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/reviews.impex new file mode 100644 index 000000000..48e595d65 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/reviews.impex @@ -0,0 +1,7 @@ +$catalog-Online=Online +$product-catalog=apparelProductCatalog +$productCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$product-catalog]),CatalogVersion.version[default=$catalog-Online])[default=$product-catalog:$catalog-Online] +$passwordEncoding=md5 +$defaultPassword=password +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Online'])[unique=true,default=$productCatalog:Online] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/site.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/site.impex new file mode 100644 index 000000000..2a18e08de --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/site.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$contentCatalog=apparel-ukContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$defaultLanguage=en +$storeUid=apparel-uk +$siteUid=apparel-uk +$webServiceSiteUid=$siteUidWS diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/solr.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/solr.impex new file mode 100644 index 000000000..a751c8126 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/solr.impex @@ -0,0 +1,12 @@ +$productCatalog=apparelProductCatalog +$catalogVersions=catalogVersions(catalog(id),version); +$serverConfigName=apparel-ukSolrServerConfig +$indexConfigName=apparel-ukSolrIndexConfig +$searchConfigName=apparel-ukPageSize +$facetSearchConfigName=apparel-ukIndex +$facetSearchConfigDescription=Apparel UK Solr Index +$searchIndexNamePrefix=apparel-uk +$solrIndexedType=apparel-ukProductType +$indexBaseSite=apparel-uk +$indexLanguages=en +$indexCurrencies=GBP diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/store.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/store.impex new file mode 100644 index 000000000..e954a24d0 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/store.impex @@ -0,0 +1,7 @@ +$productCatalog=apparelProductCatalog +$currencies=GBP +$net=false +$storeUid=apparel-uk +$defaultCurrency=GBP +$languages=en +$defaultLanguage=en diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/warehouses.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/warehouses.impex new file mode 100644 index 000000000..16ba3e5b3 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/apparel-uk/warehouses.impex @@ -0,0 +1,3 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=apparel-uk diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/btg.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/btg.impex new file mode 100644 index 000000000..ff80a0f1e --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/btg.impex @@ -0,0 +1,5 @@ +$productCatalog=electronicsProductCatalog +$contentCatalog=electronicsContentCatalog +$productCatalogName=Electronics Product Catalog +$productCatalogVersion=catalogVersion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true] +$contentCatalogVersion=catalogVersion(catalog(id[default=$contentCatalog]),version[default='Staged'])[unique=true] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service-addon-extra.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service-addon-extra.impex new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service-media.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service-media.impex new file mode 100644 index 000000000..6e59de091 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service-media.impex @@ -0,0 +1,6 @@ +$productCatalog=electronicsProductCatalog +$productCatalogName=Electronics Product Catalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$media=@media[translator=de.hybris.platform.impex.jalo.media.MediaDataTranslator] +$siteResource=jar:com.adyen.storefront.constants.AdyenAddonConstants&/adyenAddon/import/stores/electronics +$medias=medias(code, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service.impex new file mode 100644 index 000000000..fb09efe6b --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/points-of-service.impex @@ -0,0 +1,6 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=electronics +$productCatalog=electronicsProductCatalog +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged] +$storeImage=storeImage(qualifier, $catalogVersion) diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/promotions.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/promotions.impex new file mode 100644 index 000000000..024722a3f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/promotions.impex @@ -0,0 +1,8 @@ +#% impex.setLocale( Locale.GERMAN ); + +$defaultPromoGrp=electronicsPromoGrp +$favCustomers=favoriteCustomers +$bigSpenders=bigSpenders +$productCatalog=electronicsProductCatalog +$catalogVersion=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$productCatalog]),CatalogVersion.version[default=Online])[default=$productCatalog:Online] +$regulargroup=regulargroup diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/reviews.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/reviews.impex new file mode 100644 index 000000000..58e16dec2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/reviews.impex @@ -0,0 +1,7 @@ +$catalog-Online=Online +$product-catalog=electronicsProductCatalog +$productCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$product-catalog]),CatalogVersion.version[default=$catalog-Online])[default=$product-catalog:$catalog-Online] +$passwordEncoding=md5 +$defaultPassword=password +$setPassword=@password[translator=de.hybris.platform.impex.jalo.translators.ConvertPlaintextToEncodedUserPasswordTranslator][default='$passwordEncoding:$defaultPassword'] +$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Online'])[unique=true,default=$productCatalog:Online] diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/site.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/site.impex new file mode 100644 index 000000000..0870edef6 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/site.impex @@ -0,0 +1,7 @@ +$productCatalog=electronicsProductCatalog +$contentCatalog=electronicsContentCatalog +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$defaultLanguage=en +$storeUid=electronics +$siteUid=electronics +$webServiceSiteUid=$siteUidWS diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/solr.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/solr.impex new file mode 100644 index 000000000..d098de04f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/solr.impex @@ -0,0 +1,12 @@ +$productCatalog=electronicsProductCatalog +$catalogVersions=catalogVersions(catalog(id),version); +$serverConfigName=electronicsSolrServerConfig +$indexConfigName=electronicsSolrIndexConfig +$searchConfigName=electronicsPageSize +$facetSearchConfigName=electronicsIndex +$facetSearchConfigDescription=Electronics Solr Index +$searchIndexNamePrefix=electronics +$solrIndexedType=electronicsProductType +$indexBaseSite=electronics +$indexLanguages=ja,en,de,zh +$indexCurrencies=JPY,USD diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/store.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/store.impex new file mode 100644 index 000000000..f6ec747d1 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/store.impex @@ -0,0 +1,17 @@ +$productCatalog=electronicsProductCatalog +$classificationCatalog=ElectronicsClassification +$currencies=JPY,USD +$net=false +$storeUid=electronics +$defaultCurrency=USD +$languages=ja,en,de,zh +$defaultLanguage=en +$unitedKingdom=GB,GG,IM,JE +$europeNotUK=AD,AL,AT,BA,BE,BG,BY,CH,CY,CZ,DE,DK,EE,ES,FI,FO,FR,GI,GL,GR,HR,HU,IE,IS,IT,LI,LT,LU,LV,MC,MD,ME,MK,MT,NL,NO,PL,PT,RO,RS,RU,SE,SI,SK,SM,TR,UA,VA +$asianCountries=CN,JP,VN,HK,KP,KR +$deliveryCountries=$unitedKingdom,$europeNotUK,$asianCountries,US +$orderProcessCode=order-process +$pickupInStoreMode=BUY_AND_COLLECT +$customerAllowedToIgnoreSuggestions=true +$paymentProvider=Mockup +$expressCheckoutEnabled=true diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/warehouses.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/warehouses.impex new file mode 100644 index 000000000..9499a38a9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/electronics/warehouses.impex @@ -0,0 +1,3 @@ +#% impex.setLocale( Locale.GERMAN ); + +$storeUid=electronics diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/site.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/site.impex new file mode 100644 index 000000000..70c731604 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/site.impex @@ -0,0 +1,18 @@ +# +# Import the CMS Site configuration +# + +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * productCatalog = product catalog id +## * storeUid - site id +## * storeUid - id of the store +## * channel - site channel +####### + +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] + +$defaultLanguage=en +$webServiceSiteUid=$siteUidWS diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/store.impex b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/store.impex new file mode 100644 index 000000000..5650cec77 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/import/stores/template/store.impex @@ -0,0 +1,13 @@ +###### +## PARAMETERS REQUIRED FOR THIS SCRIPT +## +## * contentCatalog - content catalog id +## * productCatalog = product catalog id +## * storeUid - site id +## * storeUid - id of the store +## * channel - site channel +####### + +$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] +$defaultLanguage=en +$webServiceSiteUid=$siteUidWS diff --git a/bin/custom/adyen/adyenAddon/resources/adyenAddon/web/spring/adyenAddon-web-spring.xml b/bin/custom/adyen/adyenAddon/resources/adyenAddon/web/spring/adyenAddon-web-spring.xml new file mode 100644 index 000000000..6d91a87fc --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/adyenAddon/web/spring/adyenAddon-web-spring.xml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_de.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_de.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_de.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_en.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_en.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_en.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es_CO.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es_CO.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_es_CO.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_fr.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_fr.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_fr.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_hi.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_hi.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_hi.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_id.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_id.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_id.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_it.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_it.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_it.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ja.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ja.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ja.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ko.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ko.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ko.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_pt.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_pt.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_pt.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ru.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ru.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_ru.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh_TW.properties b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh_TW.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/resources/localization/adyenAddon-locales_zh_TW.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenAddon/ruleset.xml b/bin/custom/adyen/adyenAddon/ruleset.xml new file mode 100644 index 000000000..f61bb92b2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/ruleset.xml @@ -0,0 +1,755 @@ + + + + Java PMD ruleset for hybris + + .*/generated-sources/.* + .*/Generated/.* + .*/gensrc/.* + .*/jsp/.* + .*_jsp.java + .*/jax-doclets/.* + + + 2 + + + + + + 1 + + + + + 2 + + + + 1 + + + + 1 + + + + + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + + 2 + + + + + + + 3 + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + 4 + + + + + $maxmethods + ] + ]]> + + + + + + + 4 + + + 2 + + + + + 4 + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + 2 + + + + 4 + + + + + 2 + + + + + 2 + + + + + 2 + + + + 2 + + + + + 5 + + + + 4 + + + + + + + + + + + + + + + + 4 + + + + 2 + + + + 2 + + + + 4 + + + + + + 1 + + + + 2 + + + + + 3 + + + + +By explicitly commenting empty blocks +it is easier to distinguish between intentional (commented) and unintentional +empty block. + + 3 + + + + + + + + + + + + + + +All instance and class variables must be private. Class constants (which are static and final) can have other scopes. + + 2 + + + + + + + + + + + + + + 2 + + + + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + +You must not import from a child package. It usually indicates coupling to a specific implementation rather than referencing the interface of the implementation. + + 3 + + + + + + + + + + + Do not use import wildcards. Keep your code explicit. + 3 + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + 2 + + + + + + 2 + + + + + + 4 + + + + + + + + + + + + + + + 5 + + + + + + + + + + + 5 + + + + + + + + 5 + + + + 3 + + + + 1 + + + + 2 + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + 2 + + + + 5 + + + + + + + + + + + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + + + + 2 + + + + + 2 + + + + + + + 2 + + + + + + + + 4 + + + + 4 + + + + + 2 + + + + 2 + + + + + + + + + 2 + + + + + + 2 + + + + 2 + + + + 2 + + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/AdyenPaymentInfoPopulator.java b/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/AdyenPaymentInfoPopulator.java new file mode 100644 index 000000000..6c85172e2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/AdyenPaymentInfoPopulator.java @@ -0,0 +1,87 @@ +/** + * + */ +package com.adyen.facades.order.converters.populator; + +import de.hybris.platform.commercefacades.order.data.CardTypeData; +import de.hybris.platform.commercefacades.user.data.AddressData; +import de.hybris.platform.converters.Populator; +import de.hybris.platform.core.enums.CreditCardType; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.user.AddressModel; +import de.hybris.platform.servicelayer.dto.converter.Converter; + +import org.springframework.beans.factory.annotation.Required; + +import com.adyen.facades.order.data.AdyenPaymentInfoData; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenPaymentInfoPopulator implements Populator +{ + private Converter addressConverter; + private Converter cardTypeConverter; + + protected Converter getAddressConverter() + { + return addressConverter; + } + + @Required + public void setAddressConverter(final Converter addressConverter) + { + this.addressConverter = addressConverter; + } + + protected Converter getCardTypeConverter() + { + return cardTypeConverter; + } + + @Required + public void setCardTypeConverter(final Converter cardTypeConverter) + { + this.cardTypeConverter = cardTypeConverter; + } + + @Override + public void populate(final AdyenPaymentInfoModel source, final AdyenPaymentInfoData target) + { + target.setId(source.getPk().toString()); + target.setCardNumber(source.getNumber()); + + if (source.getType() != null) + { + final CardTypeData cardTypeData = getCardTypeConverter().convert(source.getType()); + target.setCardType(cardTypeData.getCode()); + target.setCardTypeData(cardTypeData); + } + + target.setAccountHolderName(source.getCcOwner()); + target.setExpiryMonth(source.getValidToMonth()); + target.setExpiryYear(source.getValidToYear()); + target.setStartMonth(source.getValidFromMonth()); + target.setStartYear(source.getValidFromYear()); + + target.setSubscriptionId(source.getSubscriptionId()); + target.setSaved(source.isSaved()); + + target.setUseHPP(source.isUseHPP()); + target.setAdyenPaymentBrand(source.getAdyenPaymentBrand()); + target.setIssuerId(source.getIssuerId()); + target.setHppURL(source.getHppURL()); + target.setBoletoPdfUrl(source.getAdyenBoletoPDFUrl()); + + if (source.getBillingAddress() != null) + { + target.setBillingAddress(getAddressConverter().convert(source.getBillingAddress())); + } + if (source.getIssueNumber() != null) + { + target.setIssueNumber(source.getIssueNumber().toString()); + } + } +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/ExtOrderPopulator.java b/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/ExtOrderPopulator.java new file mode 100644 index 000000000..dd8f91e78 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/facades/order/converters/populator/ExtOrderPopulator.java @@ -0,0 +1,85 @@ +/** + * + */ +package com.adyen.facades.order.converters.populator; + +import de.hybris.platform.commercefacades.order.converters.populator.OrderPopulator; +import de.hybris.platform.commercefacades.order.data.AbstractOrderData; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.order.payment.PaymentInfoModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.core.model.user.UserModel; +import de.hybris.platform.servicelayer.dto.converter.Converter; + +import com.adyen.facades.order.data.AdyenPaymentInfoData; + + +/** + * @author Kenneth Zhou + * + */ +public class ExtOrderPopulator extends OrderPopulator +{ + private Converter adyenPaymentInfoConverter; + + /* + * (non-Javadoc) + * + * @see + * de.hybris.platform.commercefacades.order.converters.populator.AbstractOrderPopulator#addPaymentInformation(de. + * hybris.platform.core.model.order.AbstractOrderModel, + * de.hybris.platform.commercefacades.order.data.AbstractOrderData) + */ + @Override + protected void addPaymentInformation(final AbstractOrderModel source, final AbstractOrderData prototype) + { + // YTODO Auto-generated method stub + super.addPaymentInformation(source, prototype); + final PaymentInfoModel paymentInfo = source.getPaymentInfo(); + if (paymentInfo instanceof AdyenPaymentInfoModel) + { + final AdyenPaymentInfoData paymentInfoData = getAdyenPaymentInfoConverter().convert((AdyenPaymentInfoModel) paymentInfo); + + final boolean isDefaultPayment = isDefaultPaymentInfo(source.getUser(), paymentInfo); + paymentInfoData.setDefaultPaymentInfo(isDefaultPayment); + prototype.setPaymentInfo(paymentInfoData); + } + } + + private boolean isDefaultPaymentInfo(final UserModel abstractOrderUser, final PaymentInfoModel abstractOrderPayment) + { + boolean isDefault = false; + if (abstractOrderUser instanceof CustomerModel) + { + final PaymentInfoModel defaultPaymentInfo = ((CustomerModel) abstractOrderUser).getDefaultPaymentInfo(); + if (defaultPaymentInfo != null) + { + if (abstractOrderPayment.equals(defaultPaymentInfo)) + { + isDefault = true; + } + } + } + + return isDefault; + } + + /** + * @return the adyenPaymentInfoConverter + */ + public Converter getAdyenPaymentInfoConverter() + { + return adyenPaymentInfoConverter; + } + + /** + * @param adyenPaymentInfoConverter + * the adyenPaymentInfoConverter to set + */ + public void setAdyenPaymentInfoConverter(final Converter adyenPaymentInfoConverter) + { + this.adyenPaymentInfoConverter = adyenPaymentInfoConverter; + } + +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/AdyenAddonStandalone.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/AdyenAddonStandalone.java new file mode 100644 index 000000000..274956f4f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/AdyenAddonStandalone.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.jalo.JaloSession; +import de.hybris.platform.util.RedeployUtilities; +import de.hybris.platform.util.Utilities; + + +/** + * Demonstration of how to write a standalone application that can be run directly from within eclipse or from the + * commandline.
    + * To run this from commandline, just use the following command:
    + * + * java -jar bootstrap/bin/ybootstrap.jar "new com.adyen.storefront.AdyenAddonStandalone().run();" + * From eclipse, just run as Java Application. Note that you maybe need to add all other projects like + * ext-commerce, ext-pim to the Launch configuration classpath. + */ +public class AdyenAddonStandalone +{ + /** + * Main class to be able to run it directly as a java program. + * + * @param args + * the arguments from commandline + */ + public static void main(final String[] args) + { + new AdyenAddonStandalone().run(); + } + + public void run() + { + Registry.activateStandaloneMode(); + Registry.activateMasterTenant(); + + final JaloSession jaloSession = JaloSession.getCurrentSession(); + System.out.println("Session ID: " + jaloSession.getSessionID()); //NOPMD + System.out.println("User: " + jaloSession.getUser()); //NOPMD + Utilities.printAppInfo(); + + RedeployUtilities.shutdown(); + } +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/constants/AdyenAddonConstants.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/constants/AdyenAddonConstants.java new file mode 100644 index 000000000..e048588b2 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/constants/AdyenAddonConstants.java @@ -0,0 +1,29 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.constants; + +/** + * Global class for all AdyenAddon constants. You can add global constants for your extension into this class. + */ +public final class AdyenAddonConstants extends GeneratedAdyenAddonConstants +{ + public static final String EXTENSIONNAME = "adyenAddon"; + + private AdyenAddonConstants() + { + //empty to avoid instantiating this constant class + } + + // implement here constants used by this extension +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/ExtCheckoutFacade.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/ExtCheckoutFacade.java new file mode 100644 index 000000000..ce48ae837 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/ExtCheckoutFacade.java @@ -0,0 +1,31 @@ +/** + * + */ +package com.adyen.storefront.facades; + +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; + +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; + + +/** + * @author Kenneth Zhou + * + */ +public interface ExtCheckoutFacade +{ + public AdyenListRecurringDetailsResponse retrieveSavedPaymentMethod(); + + public void storeCVC(String CVC); + + public void clearCVC(); + + public String getSessionCVC(); + + public CartModel getCartModel(); + + public boolean isPaymentUthorized(); + + public PaymentTransactionEntryModel authorizeAdyenPayment(final String securityCode); +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/impl/AdyenExtCheckoutFacade.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/impl/AdyenExtCheckoutFacade.java new file mode 100644 index 000000000..768ea3432 --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/impl/AdyenExtCheckoutFacade.java @@ -0,0 +1,472 @@ +/** + * + */ +package com.adyen.storefront.facades.impl; + +import static de.hybris.platform.servicelayer.util.ServicesUtil.validateParameterNotNullStandardMessage; + +import de.hybris.platform.cms2.servicelayer.services.CMSSiteService; +import de.hybris.platform.commercefacades.order.data.CCPaymentInfoData; +import de.hybris.platform.commercefacades.order.data.CartData; +import de.hybris.platform.commercefacades.user.data.AddressData; +import de.hybris.platform.core.PK; +import de.hybris.platform.core.enums.CreditCardType; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.order.payment.PaymentInfoModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.payment.dto.BillingInfo; +import de.hybris.platform.payment.dto.CardInfo; +import de.hybris.platform.payment.dto.CardType; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.servicelayer.config.ConfigurationService; +import de.hybris.platform.servicelayer.dto.converter.Converter; +import de.hybris.platform.servicelayer.search.FlexibleSearchService; +import de.hybris.platform.servicelayer.search.SearchResult; +import de.hybris.platform.servicelayer.session.SessionService; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.adyen.facades.flow.impl.DefaultCheckoutFlowFacade; +import com.adyen.facades.order.data.AdyenPaymentInfoData; +import com.adyen.services.customer.impl.AdyenCustomerAccountService; +import com.adyen.services.impl.AdyenCommerceCheckoutService; +import com.adyen.services.integration.AdyenService; +import com.adyen.services.integration.data.ContractType; +import com.adyen.services.integration.data.RecurringData; +import com.adyen.services.integration.data.ResultCode; +import com.adyen.services.integration.data.request.AdyenListRecurringDetailsRequest; +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; +import com.adyen.storefront.facades.ExtCheckoutFacade; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenExtCheckoutFacade extends DefaultCheckoutFlowFacade implements ExtCheckoutFacade +{ + private AdyenService adyenService; + private ConfigurationService configurationService; + private CMSSiteService cmsSiteService; + private SessionService sessionService; + private FlexibleSearchService flexibleSearchService; + + private Converter adyenPaymentInfoConverter; + + /* + * (non-Javadoc) + * + * @see com.adyen.facades.ExtAcceleratorCheckoutFacade#retrieveSavedPaymentMethod() + */ + @Override + public AdyenListRecurringDetailsResponse retrieveSavedPaymentMethod() + { + final AdyenListRecurringDetailsRequest request = new AdyenListRecurringDetailsRequest(); + final CustomerModel customer = getCurrentUserForCheckout(); + + request.setMerchantAccount(cmsSiteService.getCurrentSite().getAdyenMerchantAccount()); + request.setShopperReference(customer.getCustomerID()); + final RecurringData recurring = new RecurringData(); + recurring.setContract(ContractType.RECURRING.name()); + request.setRecurring(recurring); + + final AdyenListRecurringDetailsResponse response = adyenService.requestRecurringPaymentDetails(request); + + return response; + } + + @Override + public boolean authorizePayment(final String securityCode) + { + final CartModel cartModel = getCart(); + if (checkIfCurrentUserIsTheCartUser()) + { + final AdyenPaymentInfoModel adyenPaymentInfoModel = (AdyenPaymentInfoModel) cartModel.getPaymentInfo(); + if (adyenPaymentInfoModel != null && StringUtils.isNotBlank(adyenPaymentInfoModel.getSubscriptionId())) + { + final PaymentTransactionEntryModel paymentTransactionEntryModel = ((AdyenCommerceCheckoutService) getCommerceCheckoutService()) + .authorizeAdyenPaymentAmount(cartModel, securityCode, getPaymentProvider(), null); + + return paymentTransactionEntryModel != null + && (ResultCode.Authorised.name().equals(paymentTransactionEntryModel.getTransactionStatus()) || ResultCode.Received + .name().equals(paymentTransactionEntryModel.getTransactionStatus())); + } + } + return false; + } + + @Override + public PaymentTransactionEntryModel authorizeAdyenPayment(final String securityCode) + { + final CartModel cartModel = getCart(); + if (checkIfCurrentUserIsTheCartUser()) + { + final AdyenPaymentInfoModel adyenPaymentInfoModel = (AdyenPaymentInfoModel) cartModel.getPaymentInfo(); + if (adyenPaymentInfoModel != null && StringUtils.isNotBlank(adyenPaymentInfoModel.getSubscriptionId())) + { + final PaymentTransactionEntryModel paymentTransactionEntryModel = ((AdyenCommerceCheckoutService) getCommerceCheckoutService()) + .authorizeAdyenPaymentAmount(cartModel, securityCode, getPaymentProvider(), null); + + if (paymentTransactionEntryModel != null) + { + return paymentTransactionEntryModel; + } + } + } + return null; + } + + @Override + public boolean setPaymentDetails(final String paymentInfoId) + { + validateParameterNotNullStandardMessage("paymentInfoId", paymentInfoId); + + final CartModel cartModel = getCart(); + if (checkIfCurrentUserIsTheCartUser()) + { + if (StringUtils.isNotBlank(paymentInfoId)) + { + + final Map queryParams = new HashMap(); + queryParams.put("customer", getCurrentUserForCheckout()); + queryParams.put("duplicate", Boolean.FALSE); + queryParams.put("pk", PK.parse(paymentInfoId)); + final SearchResult result = getFlexibleSearchService().search( + "SELECT {pk} FROM {AdyenPaymentInfo} WHERE {user} = ?customer AND {pk} = ?pk AND {duplicate} = ?duplicate", + queryParams); + final AdyenPaymentInfoModel adyenPaymentInfoModel = result.getCount() <= 0 ? null : (AdyenPaymentInfoModel) result + .getResult().get(0); + if (adyenPaymentInfoModel != null) + { + return getCommerceCheckoutService().setPaymentInfo(cartModel, adyenPaymentInfoModel); + } + } + } + + return false; + } + + @Override + public CartData getCheckoutCart() + { + final CartData cartData = getCartFacade().getSessionCart(); + if (cartData != null) + { + cartData.setDeliveryAddress(getDeliveryAddress()); + cartData.setDeliveryMode(getDeliveryMode()); + cartData.setPaymentInfo(getAdyenPaymentDetails()); + } + + return cartData; + } + + public String getBoletoUrl() + { + final CartModel cart = getCart(); + for (final PaymentTransactionModel pt : cart.getPaymentTransactions()) + { + for (final PaymentTransactionEntryModel pte : pt.getEntries()) + { + if (pte instanceof AdyenPaymentTransactionEntryModel) + { + if (pte.getType().equals(PaymentTransactionType.AUTHORIZATION_REQUESTED)) + { + if (StringUtils.isNotBlank(((AdyenPaymentTransactionEntryModel) pte).getAdyenBoloToPDFUrl())) + { + return ((AdyenPaymentTransactionEntryModel) pte).getAdyenBoloToPDFUrl(); + } + } + } + } + } + return null; + } + + protected CCPaymentInfoData getAdyenPaymentDetails() + { + final CartModel cart = getCart(); + if (cart != null) + { + final PaymentInfoModel paymentInfo = cart.getPaymentInfo(); + if (paymentInfo instanceof AdyenPaymentInfoModel) + { + return getAdyenPaymentInfoConverter().convert((AdyenPaymentInfoModel) paymentInfo); + } + } + + return null; + } + + public AdyenPaymentInfoData createAdyenPaymentSubscription(final AdyenPaymentInfoData paymentInfoData) + { + validateParameterNotNullStandardMessage("paymentInfoData", paymentInfoData); + final AddressData billingAddressData = paymentInfoData.getBillingAddress(); + validateParameterNotNullStandardMessage("billingAddress", billingAddressData); + + if (checkIfCurrentUserIsTheCartUser()) + { + final CardInfo cardInfo = new CardInfo(); + if (paymentInfoData.isUseBoleto()) + { + validateParameterNotNullStandardMessage("boletoPaymentInfo", paymentInfoData.getBoletoPaymentInfo()); + } + else if (!paymentInfoData.isUseHPP()) + { + cardInfo.setCardHolderFullName(paymentInfoData.getAccountHolderName()); + cardInfo.setCardNumber(paymentInfoData.getCardNumber()); + final CardType cardType = getCommerceCardTypeService().getCardTypeForCode(paymentInfoData.getCardType()); + final CreditCardType creditCardType = (cardType == null ? CreditCardType.VISA : cardType.getCode()); + cardInfo.setCardType(creditCardType); + cardInfo.setExpirationMonth(Integer.valueOf(paymentInfoData.getExpiryMonth())); + cardInfo.setExpirationYear(Integer.valueOf(paymentInfoData.getExpiryYear())); + cardInfo.setIssueNumber(paymentInfoData.getIssueNumber()); + } + + final BillingInfo billingInfo = new BillingInfo(); + billingInfo.setCity(billingAddressData.getTown()); + if (billingAddressData.getCountry() != null) + { + billingInfo.setCountry(billingAddressData.getCountry().getIsocode()); + } + billingInfo.setFirstName(billingAddressData.getFirstName()); + billingInfo.setLastName(billingAddressData.getLastName()); + billingInfo.setEmail(billingAddressData.getEmail()); + billingInfo.setPhoneNumber(billingAddressData.getPhone()); + billingInfo.setPostalCode(billingAddressData.getPostalCode()); + billingInfo.setStreet1(billingAddressData.getLine1()); + billingInfo.setStreet2(billingAddressData.getLine2()); + + final CustomerModel customerModel = getCurrentUserForCheckout(); + + final AdyenPaymentInfoModel paymentInfoModel = ((AdyenCustomerAccountService) getCustomerAccountService()) + .createAdyenPaymentSubscription(customerModel, cardInfo, billingInfo, billingAddressData.getTitleCode(), + getPaymentProvider(), paymentInfoData.isSaved()); + + if (paymentInfoModel != null) + { + //ady-18 + if (StringUtils.isNotBlank(paymentInfoData.getRecurringDetailReference())) + { + paymentInfoModel.setRecurringDetailReference(paymentInfoData.getRecurringDetailReference()); + paymentInfoModel.setShopperIp(paymentInfoData.getShopperIp()); + } + else + { + paymentInfoModel.setCardEncryptedJson(paymentInfoData.getCardEncryptedJson()); + paymentInfoModel.setShopperIp(paymentInfoData.getShopperIp()); + paymentInfoModel.setSavePayment(paymentInfoData.isSavePayment()); + } + if (StringUtils.isNotBlank(paymentInfoData.getInstallments())) + { + paymentInfoModel.setInstallments(new Integer(paymentInfoData.getInstallments())); + } + if (paymentInfoData.isUseBoleto()) + { + paymentInfoModel.setFirstName(paymentInfoData.getBoletoPaymentInfo().getFirstName()); + paymentInfoModel.setLastName(paymentInfoData.getBoletoPaymentInfo().getLastName()); + paymentInfoModel.setSelectedBrand(paymentInfoData.getBoletoPaymentInfo().getSelectedBrand()); + paymentInfoModel.setSocialSecurityNumber(paymentInfoData.getBoletoPaymentInfo().getSocialSecurityNumber()); + paymentInfoModel.setShopperStatement(paymentInfoData.getBoletoPaymentInfo().getShopperStatement()); + } + if (paymentInfoData.isUseHPP()) + { + paymentInfoModel.setUseHPP(true); + paymentInfoModel.setAdyenPaymentBrand(paymentInfoData.getAdyenPaymentBrand()); + paymentInfoModel.setHppURL(getHPPUrl(StringUtils.isNotEmpty(paymentInfoData.getAdyenPaymentBrand()))); + paymentInfoModel.setIssuerId(paymentInfoData.getIssuerId()); + } + getModelService().save(paymentInfoModel); + getModelService().refresh(paymentInfoModel); + return getAdyenPaymentInfoConverter().convert(paymentInfoModel); + } + } + + return null; + } + + private String getHPPUrl(final boolean withBrandCode) + { + if (withBrandCode) + { + return getConfigurationService().getConfiguration().getString("integration.adyen.hpp.details.url"); + } + return getConfigurationService().getConfiguration().getString("integration.adyen.hpp.pay.url"); + } + + @Override + public CartModel getCartModel() + { + return getCart(); + } + + /** + * @return the cmsSiteService + */ + public CMSSiteService getCmsSiteService() + { + return cmsSiteService; + } + + /** + * @param cmsSiteService + * the cmsSiteService to set + */ + public void setCmsSiteService(final CMSSiteService cmsSiteService) + { + this.cmsSiteService = cmsSiteService; + } + + /** + * @return the adyenService + */ + public AdyenService getAdyenService() + { + return adyenService; + } + + /** + * @param adyenService + * the adyenService to set + */ + public void setAdyenService(final AdyenService adyenService) + { + this.adyenService = adyenService; + } + + /** + * @return the configurationService + */ + public ConfigurationService getConfigurationService() + { + return configurationService; + } + + /** + * @param configurationService + * the configurationService to set + */ + public void setConfigurationService(final ConfigurationService configurationService) + { + this.configurationService = configurationService; + } + + /* + * (non-Javadoc) + * + * @see com.adyen.storefront.facades.ExtCheckoutFacade#storeCVC(java.lang.String) + */ + @Override + public void storeCVC(final String CVC) + { + sessionService.setAttribute("STORED_RECURRING_CARD_CVC", CVC); + + } + + @Override + public void clearCVC() + { + sessionService.removeAttribute("STORED_RECURRING_CARD_CVC"); + + } + + /* + * (non-Javadoc) + * + * @see com.adyen.storefront.facades.ExtCheckoutFacade#isPaymentUthorized() + */ + @Override + public boolean isPaymentUthorized() + { + final CartModel cart = getCart(); + for (final PaymentTransactionModel payment : cart.getPaymentTransactions()) + { + for (final PaymentTransactionEntryModel entry : payment.getEntries()) + { + if ((entry.getType().equals(PaymentTransactionType.AUTHORIZATION_REQUESTED) || entry.getType().equals( + PaymentTransactionType.AUTHORIZATION_REQUESTED_3DSECURE)) + && (ResultCode.Authorised.name().equals(entry.getTransactionStatus()) || ResultCode.Received.name().equals( + entry.getTransactionStatus()))) + { + return true; + } + } + } + return false; + } + + @Override + public String getSessionCVC() + { + final Object o = sessionService.getAttribute("STORED_RECURRING_CARD_CVC"); + if (null != o) + { + return (String) o; + } + return null; + } + + /** + * @return the sessionService + */ + public SessionService getSessionService() + { + return sessionService; + } + + /** + * @param sessionService + * the sessionService to set + */ + public void setSessionService(final SessionService sessionService) + { + this.sessionService = sessionService; + } + + /** + * @return the adyenPaymentInfoConverter + */ + public Converter getAdyenPaymentInfoConverter() + { + return adyenPaymentInfoConverter; + } + + /** + * @param adyenPaymentInfoConverter + * the adyenPaymentInfoConverter to set + */ + public void setAdyenPaymentInfoConverter(final Converter adyenPaymentInfoConverter) + { + this.adyenPaymentInfoConverter = adyenPaymentInfoConverter; + } + + /** + * @return the flexibleSearchService + */ + public FlexibleSearchService getFlexibleSearchService() + { + return flexibleSearchService; + } + + /** + * @param flexibleSearchService + * the flexibleSearchService to set + */ + public void setFlexibleSearchService(final FlexibleSearchService flexibleSearchService) + { + this.flexibleSearchService = flexibleSearchService; + } + + + + + + + +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/order/impl/AdyenExtOrderFacade.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/order/impl/AdyenExtOrderFacade.java new file mode 100644 index 000000000..a526b058a --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/facades/order/impl/AdyenExtOrderFacade.java @@ -0,0 +1,51 @@ +/** + * + */ +package com.adyen.storefront.facades.order.impl; + +import de.hybris.platform.commercefacades.order.impl.DefaultOrderFacade; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.store.BaseStoreModel; + +import org.apache.commons.lang.StringUtils; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenExtOrderFacade extends DefaultOrderFacade +{ + public String getBoletoUrl(final String orderCode) + { + final BaseStoreModel baseStoreModel = getBaseStoreService().getCurrentBaseStore(); + final OrderModel order = getCheckoutCustomerStrategy().isAnonymousCheckout() ? getCustomerAccountService() + .getOrderDetailsForGUID(orderCode, baseStoreModel) : getCustomerAccountService().getOrderForCode( + (CustomerModel) getUserService().getCurrentUser(), orderCode, baseStoreModel); + if (order != null) + { + for (final PaymentTransactionModel pt : order.getPaymentTransactions()) + { + for (final PaymentTransactionEntryModel pte : pt.getEntries()) + { + if (pte instanceof AdyenPaymentTransactionEntryModel) + { + if (pte.getType().equals(PaymentTransactionType.AUTHORIZATION_REQUESTED)) + { + if (StringUtils.isNotBlank(((AdyenPaymentTransactionEntryModel) pte).getAdyenBoloToPDFUrl())) + { + return ((AdyenPaymentTransactionEntryModel) pte).getAdyenBoloToPDFUrl(); + } + } + } + } + } + } + return null; + } +} diff --git a/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/jalo/AdyenAddonManager.java b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/jalo/AdyenAddonManager.java new file mode 100644 index 000000000..63379fb9c --- /dev/null +++ b/bin/custom/adyen/adyenAddon/src/com/adyen/storefront/jalo/AdyenAddonManager.java @@ -0,0 +1,132 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.jalo; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.util.JspContext; + +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.adyen.storefront.constants.AdyenAddonConstants; + + + +/** + * This is the extension manager of the AdyenAddon extension. + */ +public class AdyenAddonManager extends GeneratedAdyenAddonManager +{ + /** Edit the local|project.properties to change logging behavior (properties 'log4j.*'). */ + private static final Logger LOG = Logger.getLogger(AdyenAddonManager.class.getName()); + + /* + * Some important tips for development: + * + * Do NEVER use the default constructor of manager's or items. => If you want to do something whenever the manger is + * created use the init() or destroy() methods described below + * + * Do NEVER use STATIC fields in your manager or items! => If you want to cache anything in a "static" way, use an + * instance variable in your manager, the manager is created only once in the lifetime of a "deployment" or tenant. + */ + + + /** + * Get the valid instance of this manager. + * + * @return the current instance of this manager + */ + public static AdyenAddonManager getInstance() + { + return (AdyenAddonManager) Registry.getCurrentTenant().getJaloConnection().getExtensionManager().getExtension( + AdyenAddonConstants.EXTENSIONNAME); + } + + + /** + * Never call the constructor of any manager directly, call getInstance() You can place your business logic here - + * like registering a jalo session listener. Each manager is created once for each tenant. + */ + public AdyenAddonManager() // NOPMD + { + if (LOG.isDebugEnabled()) + { + LOG.debug("constructor of AdyenAddonManager called."); + } + } + + /** + * Use this method to do some basic work only ONCE in the lifetime of a tenant resp. "deployment". This method is + * called after manager creation (for example within startup of a tenant). Note that if you have more than one tenant + * you have a manager instance for each tenant. + */ + @Override + public void init() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("init() of AdyenAddonManager called. " + getTenant().getTenantID()); + } + } + + /** + * Use this method as a callback when the manager instance is being destroyed (this happens before system + * initialization, at redeployment or if you shutdown your VM). Note that if you have more than one tenant you have a + * manager instance for each tenant. + */ + @Override + public void destroy() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("destroy() of AdyenAddonManager called, current tenant: " + getTenant().getTenantID()); + } + } + + /** + * Implement this method to create initial objects. This method will be called by system creator during + * initialization and system update. Be sure that this method can be called repeatedly. + * + * An example usage of this method is to create required cronjobs or modifying the type system (setting e.g some + * default values) + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createEssentialData(final Map params, final JspContext jspc) + { + // implement here code creating essential data + } + + /** + * Implement this method to create data that is used in your project. This method will be called during the system + * initialization. + * + * An example use is to import initial data like currencies or languages for your project from an csv file. + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createProjectData(final Map params, final JspContext jspc) + { + // implement here code creating project data + } +} diff --git a/bin/custom/adyen/adyenAddon/testsrc/com/adyen/storefront/jalo/AdyenAddonTest.java b/bin/custom/adyen/adyenAddon/testsrc/com/adyen/storefront/jalo/AdyenAddonTest.java new file mode 100644 index 000000000..44a08977f --- /dev/null +++ b/bin/custom/adyen/adyenAddon/testsrc/com/adyen/storefront/jalo/AdyenAddonTest.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2015 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.storefront.jalo; + +import static org.junit.Assert.assertTrue; + +import de.hybris.platform.testframework.HybrisJUnit4TransactionalTest; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +/** + * JUnit Tests for the AdyenAddon extension + */ +public class AdyenAddonTest extends HybrisJUnit4TransactionalTest +{ + /** Edit the local|project.properties to change logging behaviour (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenAddonTest.class.getName()); + + @Before + public void setUp() + { + // implement here code executed before each test + } + + @After + public void tearDown() + { + // implement here code executed after each test + } + + /** + * This is a sample test method. + */ + @Test + public void testAdyenAddon() + { + final boolean testTrue = true; + assertTrue("true is not true", testTrue); + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/.classpath b/bin/custom/adyen/adyenCommerceServices/.classpath new file mode 100644 index 000000000..7b0d201b3 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.classpath @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/.externalToolBuilders/HybrisCodeGeneration.launch b/bin/custom/adyen/adyenCommerceServices/.externalToolBuilders/HybrisCodeGeneration.launch new file mode 100644 index 000000000..f77a69bfd --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.externalToolBuilders/HybrisCodeGeneration.launch @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/.pmd b/bin/custom/adyen/adyenCommerceServices/.pmd new file mode 100644 index 000000000..3b56dd756 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.pmd @@ -0,0 +1,6 @@ + + + true + .ruleset + false + diff --git a/bin/custom/adyen/adyenCommerceServices/.project b/bin/custom/adyen/adyenCommerceServices/.project new file mode 100644 index 000000000..234902cdd --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.project @@ -0,0 +1,45 @@ + + + adyenCommerceServices + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full, + + + LaunchConfigHandle + <project>/.externalToolBuilders/HybrisCodeGeneration.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + net.sourceforge.pmd.eclipse.plugin.pmdBuilder + + + + + org.eclipse.babel.editor.rbeBuilder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + net.sourceforge.pmd.eclipse.plugin.pmdNature + com.jaspersoft.studio.babel.editor.rbeNature + + diff --git a/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.core.prefs b/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e0ae6d475 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,353 @@ +#Thu Apr 23 13:25:26 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=error +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,NORMAL,HIGH,NORMAL,LOW +org.eclipse.jdt.core.compiler.taskTags=YTODO,TODO,FIXME,XXX,DOCTODO +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=2 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=120 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=3 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=130 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=50 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=mixed +org.eclipse.jdt.core.formatter.tabulation.size=3 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.ui.prefs b/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..f904b836a --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,75 @@ +comment_clear_blank_lines=true +comment_format_comments=true +comment_format_header=false +comment_format_html=true +comment_format_source_code=true +comment_indent_parameter_description=true +comment_indent_root_tags=true +comment_line_length=160 +comment_new_line_for_parameter=false +comment_separate_root_tags=true +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=de.hybris;java;javax;org;com;de; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=50 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=50 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=false +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.beans.core.prefs b/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.beans.core.prefs new file mode 100644 index 000000000..7f9d66ec0 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.beans.core.prefs @@ -0,0 +1,3 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false diff --git a/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.core.prefs b/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.core.prefs new file mode 100644 index 000000000..b3ca37e0d --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.settings/org.springframework.ide.eclipse.core.prefs @@ -0,0 +1,39 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true +org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true +org.springframework.ide.eclipse.core.enable.project.preferences=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true diff --git a/bin/custom/adyen/adyenCommerceServices/.springBeans b/bin/custom/adyen/adyenCommerceServices/.springBeans new file mode 100644 index 000000000..0bbb8cfa0 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/.springBeans @@ -0,0 +1,15 @@ + + + 1 + + + + + + + resources/adyenCommerceServices-spring.xml + web/webroot/WEB-INF/adyenCommerceServices-web-spring.xml + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/buildcallbacks.xml b/bin/custom/adyen/adyenCommerceServices/buildcallbacks.xml new file mode 100644 index 000000000..6d3b6522f --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/buildcallbacks.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-core-3.0.0-milestone1-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-core-3.0.0-milestone1-javadoc.jar new file mode 100644 index 000000000..d1964e2ce Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-core-3.0.0-milestone1-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-frontend-jaxrs-3.0.0-milestone1-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-frontend-jaxrs-3.0.0-milestone1-javadoc.jar new file mode 100644 index 000000000..b0aa7b654 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-frontend-jaxrs-3.0.0-milestone1-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-transports-http-3.0.0-milestone1-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-transports-http-3.0.0-milestone1-javadoc.jar new file mode 100644 index 000000000..c518cccd5 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/cxf-rt-transports-http-3.0.0-milestone1-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.annotation-api-1.2-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.annotation-api-1.2-javadoc.jar new file mode 100644 index 000000000..84d6831d1 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.annotation-api-1.2-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.ws.rs-api-2.0-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.ws.rs-api-2.0-javadoc.jar new file mode 100644 index 000000000..2fd5cf0aa Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/javax.ws.rs-api-2.0-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/woodstox-core-asl-4.2.0-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/woodstox-core-asl-4.2.0-javadoc.jar new file mode 100644 index 000000000..32c7682a0 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/woodstox-core-asl-4.2.0-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/javadoc/xmlschema-core-2.0.3-javadoc.jar b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/xmlschema-core-2.0.3-javadoc.jar new file mode 100644 index 000000000..2f6bcf8d3 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/javadoc/xmlschema-core-2.0.3-javadoc.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-core-3.0.0-milestone1-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-core-3.0.0-milestone1-sources.jar new file mode 100644 index 000000000..1d9aa1ae8 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-core-3.0.0-milestone1-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-frontend-jaxrs-3.0.0-milestone1-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-frontend-jaxrs-3.0.0-milestone1-sources.jar new file mode 100644 index 000000000..3fd1216f5 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-frontend-jaxrs-3.0.0-milestone1-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-transports-http-3.0.0-milestone1-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-transports-http-3.0.0-milestone1-sources.jar new file mode 100644 index 000000000..98969f0c8 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/cxf-rt-transports-http-3.0.0-milestone1-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.annotation-api-1.2-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.annotation-api-1.2-sources.jar new file mode 100644 index 000000000..d2ff519db Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.annotation-api-1.2-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.ws.rs-api-2.0-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.ws.rs-api-2.0-sources.jar new file mode 100644 index 000000000..b3c6a7076 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/javax.ws.rs-api-2.0-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/stax2-api-3.1.1-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/stax2-api-3.1.1-sources.jar new file mode 100644 index 000000000..1e68d9bc5 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/stax2-api-3.1.1-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/woodstox-core-asl-4.2.0-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/woodstox-core-asl-4.2.0-sources.jar new file mode 100644 index 000000000..a84495fb1 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/woodstox-core-asl-4.2.0-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/doc/sources/xmlschema-core-2.0.3-sources.jar b/bin/custom/adyen/adyenCommerceServices/doc/sources/xmlschema-core-2.0.3-sources.jar new file mode 100644 index 000000000..b7d391e0b Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/doc/sources/xmlschema-core-2.0.3-sources.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/extensioninfo.xml b/bin/custom/adyen/adyenCommerceServices/extensioninfo.xml new file mode 100644 index 000000000..39dd48953 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/extensioninfo.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/external-dependencies.xml b/bin/custom/adyen/adyenCommerceServices/external-dependencies.xml new file mode 100644 index 000000000..c3a59d0b0 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/external-dependencies.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + de.hybris.platform + adyenCommerceServices + 5.0.0.0-SNAPSHOT + + jar + + + + org.apache.cxf + cxf-rt-frontend-jaxrs + 3.0.0-milestone1 + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenCommerceServices/lib/.lastupdate b/bin/custom/adyen/adyenCommerceServices/lib/.lastupdate new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenCommerceServices/lib/cxf-rt-frontend-jaxrs-3.0.0-milestone1.jar b/bin/custom/adyen/adyenCommerceServices/lib/cxf-rt-frontend-jaxrs-3.0.0-milestone1.jar new file mode 100644 index 000000000..10eaf4cd8 Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/lib/cxf-rt-frontend-jaxrs-3.0.0-milestone1.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/project.properties b/bin/custom/adyen/adyenCommerceServices/project.properties new file mode 100644 index 000000000..780deaa7f --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/project.properties @@ -0,0 +1,21 @@ +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2013 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + +adyenCommerceServices.key=value + +# Specifies the location of the spring context file putted automatically to the global platform application context. +adyenCommerceServices.application-context=adyenCommerceServices-spring.xml \ No newline at end of file diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-beans.xml b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-beans.xml new file mode 100644 index 000000000..9dc483436 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-beans.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-items.xml b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-items.xml new file mode 100644 index 000000000..732d8da86 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-items.xml @@ -0,0 +1,50 @@ + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-spring.xml b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-spring.xml new file mode 100644 index 000000000..69e19b941 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices-spring.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices.build.number b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices.build.number new file mode 100644 index 000000000..844f767a3 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices.build.number @@ -0,0 +1,8 @@ +#Ant properties +#Fri May 08 14:12:03 UTC 2015 +builddate=20150508 1411 +description=adyenCommerceServices +name=adyenCommerceServices +vendor=hybris +version=5.1.1.6 +version.api=5.1.1 diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices/adyenCommerceServices-webtestclasses.xml b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices/adyenCommerceServices-webtestclasses.xml new file mode 100644 index 000000000..08e5a99d8 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices/adyenCommerceServices-webtestclasses.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices/dummy.txt b/bin/custom/adyen/adyenCommerceServices/resources/adyenCommerceServices/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_de.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_de.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_de.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_en.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_en.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_en.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_es.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_es.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_es.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_fr.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_fr.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_fr.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_it.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_it.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_it.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ja.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ja.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ja.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ko.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ko.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ko.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_pt.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_pt.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_pt.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ru.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ru.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_ru.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_zh.properties b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_zh.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/resources/localization/adyenCommerceServices-locales_zh.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenCommerceServices/ruleset.xml b/bin/custom/adyen/adyenCommerceServices/ruleset.xml new file mode 100644 index 000000000..a3cdab92a --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/ruleset.xml @@ -0,0 +1,755 @@ + + + + .*/generated-sources/.* + .*/Generated/.* + .*/gensrc/.* + .*/jsp/.* + .*_jsp.java + .*/jax-doclets/.* + + Java PMD ruleset for hybris + + + 2 + + + + + + 1 + + + + + 2 + + + + 1 + + + + 1 + + + + + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + + 2 + + + + + + + 3 + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + 4 + + + + + $maxmethods + ] + ]]> + + + + + + + 4 + + + 2 + + + + + 4 + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + 2 + + + + 4 + + + + + 2 + + + + + 2 + + + + + 2 + + + + 2 + + + + + 5 + + + + 4 + + + + + + + + + + + + + + + + 4 + + + + 2 + + + + 2 + + + + 4 + + + + + + 1 + + + + 2 + + + + + 3 + + + + +By explicitly commenting empty blocks +it is easier to distinguish between intentional (commented) and unintentional +empty block. + + 3 + + + + + + + + + + + + + + +All instance and class variables must be private. Class constants (which are static and final) can have other scopes. + + 2 + + + + + + + + + + + + + + 2 + + + + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + +You must not import from a child package. It usually indicates coupling to a specific implementation rather than referencing the interface of the implementation. + + 3 + + + + + + + + + + + Do not use import wildcards. Keep your code explicit. + 3 + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + 2 + + + + + + 2 + + + + + + 4 + + + + + + + + + + + + + + + 5 + + + + + + + + + + + 5 + + + + + + + + 5 + + + + 3 + + + + 1 + + + + 2 + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + 2 + + + + 5 + + + + + + + + + + + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + + + + 2 + + + + + 2 + + + + + + + 2 + + + + + + + + 4 + + + + 4 + + + + + 2 + + + + 2 + + + + + + + + + 2 + + + + + + 2 + + + + 2 + + + + 2 + + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/AdyenCommerceServicesStandalone.java b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/AdyenCommerceServicesStandalone.java new file mode 100644 index 000000000..59c1b1825 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/AdyenCommerceServicesStandalone.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.commerceservices; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.jalo.JaloSession; +import de.hybris.platform.util.RedeployUtilities; +import de.hybris.platform.util.Utilities; + + +/** + * Demonstration of how to write a standalone application that can be run directly from within eclipse or from the + * commandline.
    + * To run this from commandline, just use the following command:
    + * + * java -jar bootstrap/bin/ybootstrap.jar "new com.adyen.commerceservices.AdyenCommerceServicesStandalone().run();" + * From eclipse, just run as Java Application. Note that you maybe need to add all other projects like + * ext-commerce, ext-pim to the Launch configuration classpath. + */ +public class AdyenCommerceServicesStandalone +{ + /** + * Main class to be able to run it directly as a java program. + * + * @param args + * the arguments from commandline + */ + public static void main(final String[] args) + { + new AdyenCommerceServicesStandalone().run(); + } + + public void run() + { + Registry.activateStandaloneMode(); + Registry.activateMasterTenant(); + + final JaloSession jaloSession = JaloSession.getCurrentSession(); + System.out.println("Session ID: " + jaloSession.getSessionID()); //NOPMD + System.out.println("User: " + jaloSession.getUser()); //NOPMD + Utilities.printAppInfo(); + + RedeployUtilities.shutdown(); + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/constants/AdyenCommerceServicesConstants.java b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/constants/AdyenCommerceServicesConstants.java new file mode 100644 index 000000000..6d35cd92e --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/constants/AdyenCommerceServicesConstants.java @@ -0,0 +1,29 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.commerceservices.constants; + +/** + * Global class for all AdyenCommerceServices constants. You can add global constants for your extension into this class. + */ +public final class AdyenCommerceServicesConstants extends GeneratedAdyenCommerceServicesConstants +{ + public static final String EXTENSIONNAME = "adyenCommerceServices"; + + private AdyenCommerceServicesConstants() + { + //empty to avoid instantiating this constant class + } + + // implement here constants used by this extension +} diff --git a/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/jalo/AdyenCommerceServicesManager.java b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/jalo/AdyenCommerceServicesManager.java new file mode 100644 index 000000000..0e00c12ea --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/src/com/adyen/commerceservices/jalo/AdyenCommerceServicesManager.java @@ -0,0 +1,132 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.commerceservices.jalo; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.util.JspContext; + +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.adyen.commerceservices.constants.AdyenCommerceServicesConstants; + + + +/** + * This is the extension manager of the AdyenCommerceServices extension. + */ +public class AdyenCommerceServicesManager extends GeneratedAdyenCommerceServicesManager +{ + /** Edit the local|project.properties to change logging behavior (properties 'log4j.*'). */ + private static final Logger LOG = Logger.getLogger(AdyenCommerceServicesManager.class.getName()); + + /* + * Some important tips for development: + * + * Do NEVER use the default constructor of manager's or items. => If you want to do something whenever the manger is + * created use the init() or destroy() methods described below + * + * Do NEVER use STATIC fields in your manager or items! => If you want to cache anything in a "static" way, use an + * instance variable in your manager, the manager is created only once in the lifetime of a "deployment" or tenant. + */ + + + /** + * Get the valid instance of this manager. + * + * @return the current instance of this manager + */ + public static AdyenCommerceServicesManager getInstance() + { + return (AdyenCommerceServicesManager) Registry.getCurrentTenant().getJaloConnection().getExtensionManager().getExtension( + AdyenCommerceServicesConstants.EXTENSIONNAME); + } + + + /** + * Never call the constructor of any manager directly, call getInstance() You can place your business logic here - + * like registering a jalo session listener. Each manager is created once for each tenant. + */ + public AdyenCommerceServicesManager() // NOPMD + { + if (LOG.isDebugEnabled()) + { + LOG.debug("constructor of AdyenCommerceServicesManager called."); + } + } + + /** + * Use this method to do some basic work only ONCE in the lifetime of a tenant resp. "deployment". This method is + * called after manager creation (for example within startup of a tenant). Note that if you have more than one tenant + * you have a manager instance for each tenant. + */ + @Override + public void init() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("init() of AdyenCommerceServicesManager called. " + getTenant().getTenantID()); + } + } + + /** + * Use this method as a callback when the manager instance is being destroyed (this happens before system + * initialization, at redeployment or if you shutdown your VM). Note that if you have more than one tenant you have a + * manager instance for each tenant. + */ + @Override + public void destroy() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("destroy() of AdyenCommerceServicesManager called, current tenant: " + getTenant().getTenantID()); + } + } + + /** + * Implement this method to create initial objects. This method will be called by system creator during + * initialization and system update. Be sure that this method can be called repeatedly. + * + * An example usage of this method is to create required cronjobs or modifying the type system (setting e.g some + * default values) + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createEssentialData(final Map params, final JspContext jspc) + { + // implement here code creating essential data + } + + /** + * Implement this method to create data that is used in your project. This method will be called during the system + * initialization. + * + * An example use is to import initial data like currencies or languages for your project from an csv file. + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createProjectData(final Map params, final JspContext jspc) + { + // implement here code creating project data + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/testsrc/com/adyen/commerceservices/jalo/AdyenCommerceServicesTest.java b/bin/custom/adyen/adyenCommerceServices/testsrc/com/adyen/commerceservices/jalo/AdyenCommerceServicesTest.java new file mode 100644 index 000000000..3473d923c --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/testsrc/com/adyen/commerceservices/jalo/AdyenCommerceServicesTest.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.commerceservices.jalo; + +import static org.junit.Assert.assertTrue; + +import de.hybris.platform.testframework.HybrisJUnit4TransactionalTest; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +/** + * JUnit Tests for the AdyenCommerceServices extension + */ +public class AdyenCommerceServicesTest extends HybrisJUnit4TransactionalTest +{ + /** Edit the local|project.properties to change logging behaviour (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenCommerceServicesTest.class.getName()); + + @Before + public void setUp() + { + // implement here code executed before each test + } + + @After + public void tearDown() + { + // implement here code executed after each test + } + + /** + * This is a sample test method. + */ + @Test + public void testAdyenCommerceServices() + { + final boolean testTrue = true; + assertTrue("true is not true", testTrue); + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/AdyenCommerceServicesWebHelper.java b/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/AdyenCommerceServicesWebHelper.java new file mode 100644 index 000000000..ecc4c8124 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/AdyenCommerceServicesWebHelper.java @@ -0,0 +1,32 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.commerceservices; + +import org.apache.log4j.Logger; + + +/** + * Simple test class to demonstrate how to include utility classes to your webmodule. + */ +public class AdyenCommerceServicesWebHelper +{ + /** Edit the local|project.properties to change logging behavior (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenCommerceServicesWebHelper.class.getName()); + + public static final String getTestOutput() + { + return "testoutput"; + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/rest/AdyenNotificationReceiver.java b/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/rest/AdyenNotificationReceiver.java new file mode 100644 index 000000000..5021cec87 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/src/com/adyen/commerceservices/rest/AdyenNotificationReceiver.java @@ -0,0 +1,117 @@ +/** + * + */ +package com.adyen.commerceservices.rest; + +import de.hybris.platform.servicelayer.event.EventService; + +import java.io.IOException; + +import javax.annotation.Resource; + +import org.apache.log4j.Logger; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.JsonParser.Feature; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.adyen.services.event.AdyenNotificationEvent; +import com.adyen.services.integration.data.request.AdyenNotificationRequest; +import com.adyen.services.listener.AdyenNotificationListener; + + +/** + * @author Kenneth Zhou + * + */ +@Controller +@RequestMapping(value = "/notification/receiver") +public class AdyenNotificationReceiver +{ + /** + * + */ + private static final String ACCEPTED = "[accepted]"; + + private static final Logger LOG = Logger.getLogger(AdyenNotificationReceiver.class); + + @Resource + private EventService eventService; + @Resource + private AdyenNotificationListener adyenNotificationListener; + + @RequestMapping(method = RequestMethod.POST) + @ResponseBody + public String onReceive(@RequestBody final String requestString) + { + LOG.info("Received Adyen notification:" + requestString); + final ObjectMapper om = new ObjectMapper(); + AdyenNotificationRequest request = null; + try + { + om.setSerializationInclusion(Inclusion.NON_NULL); + om.configure(Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); + request = om.readValue(requestString, AdyenNotificationRequest.class); + LOG.info("Publish Adyen event."); + getEventService().registerEventListener(getAdyenNotificationListener()); + getEventService().publishEvent(new AdyenNotificationEvent(request)); + } + catch (final JsonParseException e) + { + LOG.error("JsonParseException", e); + } + catch (final JsonMappingException e) + { + LOG.error("JsonMappingException", e); + } + catch (final IOException e) + { + LOG.error("IOException", e); + } + if (null == request) + { + LOG.info("Error parsing request."); + } + return ACCEPTED; + } + + /** + * @return the eventService + */ + public EventService getEventService() + { + return eventService; + } + + /** + * @param eventService + * the eventService to set + */ + public void setEventService(final EventService eventService) + { + this.eventService = eventService; + } + + /** + * @return the adyenNotificationListener + */ + public AdyenNotificationListener getAdyenNotificationListener() + { + return adyenNotificationListener; + } + + /** + * @param adyenNotificationListener + * the adyenNotificationListener to set + */ + public void setAdyenNotificationListener(final AdyenNotificationListener adyenNotificationListener) + { + this.adyenNotificationListener = adyenNotificationListener; + } +} diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/adyenCommerceServices-web-spring.xml b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/adyenCommerceServices-web-spring.xml new file mode 100644 index 000000000..658ecb2c1 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/adyenCommerceServices-web-spring.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/dispatcherServlet-servlet.xml b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/dispatcherServlet-servlet.xml new file mode 100644 index 000000000..02227ed64 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/dispatcherServlet-servlet.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/ibm-web-ext.xmi b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/ibm-web-ext.xmi new file mode 100644 index 000000000..65e568192 --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/ibm-web-ext.xmi @@ -0,0 +1,10 @@ + + + + + diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/lib/spring-webmvc-3.2.5.RELEASE.jar b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/lib/spring-webmvc-3.2.5.RELEASE.jar new file mode 100644 index 000000000..d28c336ed Binary files /dev/null and b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/lib/spring-webmvc-3.2.5.RELEASE.jar differ diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/web.xml b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/web.xml new file mode 100644 index 000000000..451cc439c --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/webroot/WEB-INF/web.xml @@ -0,0 +1,111 @@ + + + + + + adyenCommerceServices + + + index.jsp + + + + XSSFilter + de.hybris.platform.servicelayer.web.XSSFilter + + + + XSSFilter + /* + + + + characterEncodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + + adyenCommerceServicesPlatformFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + + characterEncodingFilter + /* + + + + adyenCommerceServicesPlatformFilterChain + /* + + + + + + + contextConfigLocation + WEB-INF/adyenCommerceServices-web-spring.xml + + + + de.hybris.platform.spring.HybrisContextLoaderListener + + + + org.springframework.web.context.request.RequestContextListener + + + + + + + Adyen Notification Resources + /* + + + adyenAPIUser + + + + NONE + + + + + BASIC + + + + Normal operator user + adyenAPIUser + + + + dispatcherServlet + org.springframework.web.servlet.DispatcherServlet + 1 + + + + dispatcherServlet + /* + + diff --git a/bin/custom/adyen/adyenCommerceServices/web/webroot/index.jsp b/bin/custom/adyen/adyenCommerceServices/web/webroot/index.jsp new file mode 100644 index 000000000..9eb62197f --- /dev/null +++ b/bin/custom/adyen/adyenCommerceServices/web/webroot/index.jsp @@ -0,0 +1,7 @@ + + +

    adyenCommerceServices

    + Welcome to my extension. + + + diff --git a/bin/custom/adyen/adyenServices/.classpath b/bin/custom/adyen/adyenServices/.classpath new file mode 100644 index 000000000..9f18be15e --- /dev/null +++ b/bin/custom/adyen/adyenServices/.classpath @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/.externalToolBuilders/HybrisCodeGeneration.launch b/bin/custom/adyen/adyenServices/.externalToolBuilders/HybrisCodeGeneration.launch new file mode 100644 index 000000000..d9d92f366 --- /dev/null +++ b/bin/custom/adyen/adyenServices/.externalToolBuilders/HybrisCodeGeneration.launch @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/.pmd b/bin/custom/adyen/adyenServices/.pmd new file mode 100644 index 000000000..3b56dd756 --- /dev/null +++ b/bin/custom/adyen/adyenServices/.pmd @@ -0,0 +1,6 @@ + + + true + .ruleset + false + diff --git a/bin/custom/adyen/adyenServices/.project b/bin/custom/adyen/adyenServices/.project new file mode 100644 index 000000000..017f8c581 --- /dev/null +++ b/bin/custom/adyen/adyenServices/.project @@ -0,0 +1,45 @@ + + + adyenServices + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + auto,full, + + + LaunchConfigHandle + <project>/.externalToolBuilders/HybrisCodeGeneration.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + net.sourceforge.pmd.eclipse.plugin.pmdBuilder + + + + + org.eclipse.babel.editor.rbeBuilder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + net.sourceforge.pmd.eclipse.plugin.pmdNature + com.jaspersoft.studio.babel.editor.rbeNature + + diff --git a/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.core.prefs b/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e0ae6d475 --- /dev/null +++ b/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,353 @@ +#Thu Apr 23 13:25:26 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=error +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=error +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,NORMAL,HIGH,NORMAL,LOW +org.eclipse.jdt.core.compiler.taskTags=YTODO,TODO,FIXME,XXX,DOCTODO +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=2 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=120 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=3 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=130 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=50 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=mixed +org.eclipse.jdt.core.formatter.tabulation.size=3 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.ui.prefs b/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000..0e8dd6f4d --- /dev/null +++ b/bin/custom/adyen/adyenServices/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,81 @@ +comment_clear_blank_lines=true +comment_format_comments=true +comment_format_header=false +comment_format_html=true +comment_format_source_code=true +comment_indent_parameter_description=true +comment_indent_root_tags=true +comment_line_length=160 +comment_new_line_for_parameter=false +comment_separate_root_tags=true +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=de.hybris;java;javax;org;com;de; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=50 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=50 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=false +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_functional_interfaces=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.insert_inferred_type_arguments=false +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=false +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_redundant_type_arguments=false +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_anonymous_class_creation=false +sp_cleanup.use_blocks=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_lambda=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true +sp_cleanup.use_type_arguments=false diff --git a/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.beans.core.prefs b/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.beans.core.prefs new file mode 100644 index 000000000..7f9d66ec0 --- /dev/null +++ b/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.beans.core.prefs @@ -0,0 +1,3 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false diff --git a/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.core.prefs b/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.core.prefs new file mode 100644 index 000000000..b3ca37e0d --- /dev/null +++ b/bin/custom/adyen/adyenServices/.settings/org.springframework.ide.eclipse.core.prefs @@ -0,0 +1,39 @@ +#Fri May 15 12:07:57 CEST 2009 +eclipse.preferences.version=1 +org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true +org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true +org.springframework.ide.eclipse.core.enable.project.preferences=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true +org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true diff --git a/bin/custom/adyen/adyenServices/.springBeans b/bin/custom/adyen/adyenServices/.springBeans new file mode 100644 index 000000000..c78f7554a --- /dev/null +++ b/bin/custom/adyen/adyenServices/.springBeans @@ -0,0 +1,15 @@ + + + 1 + + + + + + + resources/adyenServices-spring.xml + web/webroot/WEB-INF/adyenServices-web-spring.xml + + + + diff --git a/bin/custom/adyen/adyenServices/buildcallbacks.xml b/bin/custom/adyen/adyenServices/buildcallbacks.xml new file mode 100644 index 000000000..dee5e666c --- /dev/null +++ b/bin/custom/adyen/adyenServices/buildcallbacks.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/extensioninfo.xml b/bin/custom/adyen/adyenServices/extensioninfo.xml new file mode 100644 index 000000000..7a2b0f4d1 --- /dev/null +++ b/bin/custom/adyen/adyenServices/extensioninfo.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/external-dependencies.xml b/bin/custom/adyen/adyenServices/external-dependencies.xml new file mode 100644 index 000000000..7f3b241f4 --- /dev/null +++ b/bin/custom/adyen/adyenServices/external-dependencies.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + de.hybris.platform + adyenServices + 5.0.0.0-SNAPSHOT + + jar + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/lib/jackson-core-asl-1.9.11.jar b/bin/custom/adyen/adyenServices/lib/jackson-core-asl-1.9.11.jar new file mode 100644 index 000000000..145fc4892 Binary files /dev/null and b/bin/custom/adyen/adyenServices/lib/jackson-core-asl-1.9.11.jar differ diff --git a/bin/custom/adyen/adyenServices/lib/jackson-mapper-asl-1.9.11.jar b/bin/custom/adyen/adyenServices/lib/jackson-mapper-asl-1.9.11.jar new file mode 100644 index 000000000..3e686c6f5 Binary files /dev/null and b/bin/custom/adyen/adyenServices/lib/jackson-mapper-asl-1.9.11.jar differ diff --git a/bin/custom/adyen/adyenServices/lib/spring-web-3.2.5.RELEASE.jar b/bin/custom/adyen/adyenServices/lib/spring-web-3.2.5.RELEASE.jar new file mode 100644 index 000000000..29eb4fd7f Binary files /dev/null and b/bin/custom/adyen/adyenServices/lib/spring-web-3.2.5.RELEASE.jar differ diff --git a/bin/custom/adyen/adyenServices/project.properties b/bin/custom/adyen/adyenServices/project.properties new file mode 100644 index 000000000..f0780dfb3 --- /dev/null +++ b/bin/custom/adyen/adyenServices/project.properties @@ -0,0 +1,21 @@ +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2013 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + +adyenServices.key=value + +# Specifies the location of the spring context file putted automatically to the global platform application context. +adyenServices.application-context=adyenServices-spring.xml \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices-beans.xml b/bin/custom/adyen/adyenServices/resources/adyenServices-beans.xml new file mode 100644 index 000000000..9ccbb7f3f --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/adyenServices-beans.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices-items.xml b/bin/custom/adyen/adyenServices/resources/adyenServices-items.xml new file mode 100644 index 000000000..a93f64a6c --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/adyenServices-items.xml @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HYBRIS.LONG_STRING + + + + + + + + + + + + + + + + + + + "thefield" + + + + + + + + + + "thefield" + + + + + + + + + + + + + + + + + + + + + + + + + Determines whether the subscription ID has been validated. + + + + + Issue number is the reference information for the credit cart data. + + + + Subscription ID is the reference information for the credit cart data stored in the external payment provider. + + + + + + HYBRIS.LONG_STRING + + + Adyen Card Encrypted Json + + + + Adyen Shopper Ip + + + + If save payment to Adyen + + + + Recurring Detail Reference + + + + installments of payment + + + + Boleto required first name of payer. + + + + Boleto required last name of payer. + + + + + Selected Brand of boleto + + + + Social Security Number of boleto + + + + Shopper Statement + + + + Choosed payment method of Adyen. Will be feed back from notification/response + + + + Adyen Auth code. Will be feed back from notification/response + + + + Adyen notification reason. Will be feed back from notification/response + + + + If use HPP + + + + Hpp Url + + + + + HYBRIS.LONG_STRING + + + Boleto PDF Url + + + + Issuer Id + + + + + + + + + + + + + + + + + + true + + + + + + + Extends existing type with additional attributes. + + + Determines whether use saved payment + + + java.lang.Boolean.TRUE + + + Determines whether use directory lookup + + + Boolean.TRUE + + + Determines whether use api + + + Boolean.TRUE + + + Determines whether use hpp. + + + Boolean.TRUE + + + Determines whether boleto available. + + + Boolean.FALSE + + + Determines whether enable installment. + + + Boolean.FALSE + + + Adyen Merchant Account for WS call. + + + "YourMerchantAccountHere" + + + Adyen API Account + + + "YourAPIAccountHere" + + + Adyen API Account password. + + + "1234" + + + Adyen client side encryption public key. + + + HYBRIS.LONG_STRING + + + + "YourCESKeyHere" + + + + Available Boleto types for site. + + + + + + Adyen client side encryption public key. + + "YourHMACKeyHere" + + + Adyen client side encryption public key. + + "YourSkinCodeHere" + + + + + + diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices-spring.xml b/bin/custom/adyen/adyenServices/resources/adyenServices-spring.xml new file mode 100644 index 000000000..b69aef5ff --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/adyenServices-spring.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices.build.number b/bin/custom/adyen/adyenServices/resources/adyenServices.build.number new file mode 100644 index 000000000..d889bc453 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/adyenServices.build.number @@ -0,0 +1,8 @@ +#Ant properties +#Fri May 08 14:12:03 UTC 2015 +builddate=20150508 1411 +description=adyenServices +name=adyenServices +vendor=hybris +version=5.1.1.6 +version.api=5.1.1 diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices/adyenServices-webtestclasses.xml b/bin/custom/adyen/adyenServices/resources/adyenServices/adyenServices-webtestclasses.xml new file mode 100644 index 000000000..83c5795cd --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/adyenServices/adyenServices-webtestclasses.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/resources/adyenServices/dummy.txt b/bin/custom/adyen/adyenServices/resources/adyenServices/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_de.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_de.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_de.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_en.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_en.properties new file mode 100644 index 000000000..bbfeaa6ff --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_en.properties @@ -0,0 +1,50 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + +error.cmssite.api.hpp.both.disabled=api and hpp are both disabled. +error.cmssite.api.hpp.hmackey.required=when hpp is enabled,hmac key is required. +error.cmssite.api.hpp.skincode.required=when hpp is enabled,skin code is required. + +type.CMSSite.adyenUseSavedPayment.name=Use Saved Payment +type.CMSSite.adyenUseDirectoryLookup.name=Use Directory Lookup +type.CMSSite.adyenUseAPI.name=Use API +type.CMSSite.adyenUseHPP.name=Use HPP +type.CMSSite.adyenBoletoAvailable.name=Boleto Available +type.CMSSite.adyenEnableInstallment.name=Enable Installment +type.CMSSite.adyenMerchantAccount.name=Adyen Merchant Account +type.CMSSite.adyenHmacKey.name=HMAC Key +type.CMSSite.adyenSkinCode.name=Skin Code + +type.CMSSite.adyenAPIAccount.name=API Account +type.CMSSite.adyenAPIPassword.name=API Account Password +type.CMSSite.adyenCSEKey.name=API CSE Key +type.CMSSite.availableBoletoTypes.name=Available Boleto Brands +type.CMSSite.siteAdyenPaymentMethods.name=Adyen Payment Methods + +type.AdyenPaymentMethod.adyenPaymentMethodCode.name=Payment Method Code +type.AdyenPaymentMethod.captureNeeded.name=Need Capture + + +type.AdyenPaymentTransactionEntry.adyenAuthCode.name=Auth Code +type.AdyenPaymentTransactionEntry.adyenBoloToPDFUrl.name=Boleto PDF Url + +type.CreditCardPaymentInfo.shopperIp=Adyen Shopper Ip +type.CreditCardPaymentInfo.cardEncryptedJson.name=Adyen Card Encrypted Json + +type.OrderStatus.CANCEL_FAILED.name=Cancel Failed + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_es.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_es.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_es.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_fr.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_fr.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_fr.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_it.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_it.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_it.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ja.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ja.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ja.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ko.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ko.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ko.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_pt.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_pt.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_pt.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ru.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ru.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_ru.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_zh.properties b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_zh.properties new file mode 100644 index 000000000..f20f49ff9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/resources/localization/adyenServices-locales_zh.properties @@ -0,0 +1,18 @@ + +# put localizations of item types into this file +# Note that you can also add special locatizations which +# can be retrieved with the +# +# ...tools.localization.Localization.getLocalizedString(...) +# +# methods. +# +# syntax for type localizations: +# +# type..name=XY +# type...name=XY +# type..description=XY +# type...description=XY +# +# yourcustomlocalekey=value + diff --git a/bin/custom/adyen/adyenServices/ruleset.xml b/bin/custom/adyen/adyenServices/ruleset.xml new file mode 100644 index 000000000..a3cdab92a --- /dev/null +++ b/bin/custom/adyen/adyenServices/ruleset.xml @@ -0,0 +1,755 @@ + + + + .*/generated-sources/.* + .*/Generated/.* + .*/gensrc/.* + .*/jsp/.* + .*_jsp.java + .*/jax-doclets/.* + + Java PMD ruleset for hybris + + + 2 + + + + + + 1 + + + + + 2 + + + + 1 + + + + 1 + + + + + + + + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + + + + 2 + + + + + + + 3 + + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + 4 + + + + + $maxmethods + ] + ]]> + + + + + + + 4 + + + 2 + + + + + 4 + + + + + + 3 + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + 2 + + + + 2 + + + + 4 + + + + + 2 + + + + + 2 + + + + + 2 + + + + 2 + + + + + 5 + + + + 4 + + + + + + + + + + + + + + + + 4 + + + + 2 + + + + 2 + + + + 4 + + + + + + 1 + + + + 2 + + + + + 3 + + + + +By explicitly commenting empty blocks +it is easier to distinguish between intentional (commented) and unintentional +empty block. + + 3 + + + + + + + + + + + + + + +All instance and class variables must be private. Class constants (which are static and final) can have other scopes. + + 2 + + + + + + + + + + + + + + 2 + + + + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + +You must not import from a child package. It usually indicates coupling to a specific implementation rather than referencing the interface of the implementation. + + 3 + + + + + + + + + + + Do not use import wildcards. Keep your code explicit. + 3 + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + 2 + + + + + + 2 + + + + + + 4 + + + + + + + + + + + + + + + 5 + + + + + + + + + + + 5 + + + + + + + + 5 + + + + 3 + + + + 1 + + + + 2 + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + 2 + + + + 5 + + + + + + + + + + + + + + 1 + + + + 2 + + + + + + + + + 2 + + + + + + + 2 + + + + + 2 + + + + + + + 2 + + + + + + + + 4 + + + + 4 + + + + + 2 + + + + 2 + + + + + + + + + 2 + + + + + + 2 + + + + 2 + + + + 2 + + + + + 2 + + + + 2 + + + + 2 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/interceptor/AdyenCMSSiteModelValidateInterceptor.java b/bin/custom/adyen/adyenServices/src/com/adyen/interceptor/AdyenCMSSiteModelValidateInterceptor.java new file mode 100644 index 000000000..f6ab697dc --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/interceptor/AdyenCMSSiteModelValidateInterceptor.java @@ -0,0 +1,62 @@ +/** + * + */ +package com.adyen.interceptor; + +import de.hybris.platform.cms2.model.site.CMSSiteModel; +import de.hybris.platform.servicelayer.i18n.L10NService; +import de.hybris.platform.servicelayer.interceptor.InterceptorContext; +import de.hybris.platform.servicelayer.interceptor.InterceptorException; +import de.hybris.platform.servicelayer.interceptor.ValidateInterceptor; + +import org.apache.commons.lang.StringUtils; + + +/** + * @author delli + * + */ +public class AdyenCMSSiteModelValidateInterceptor implements ValidateInterceptor +{ + private L10NService l10NService; + + @Override + public void onValidate(final CMSSiteModel cmsSiteModel, final InterceptorContext paramInterceptorContext) + throws InterceptorException + { + if (!cmsSiteModel.isAdyenUseAPI() && !cmsSiteModel.isAdyenUseHPP()) + { + throw new InterceptorException(getL10NService().getLocalizedString("error.cmssite.api.hpp.both.disabled")); + } + + if (cmsSiteModel.isAdyenUseHPP()) + { + if (StringUtils.isEmpty(cmsSiteModel.getAdyenHmacKey())) + { + throw new InterceptorException(getL10NService().getLocalizedString("error.cmssite.api.hpp.hmackey.required")); + } + if (StringUtils.isEmpty(cmsSiteModel.getAdyenSkinCode())) + { + throw new InterceptorException(getL10NService().getLocalizedString("error.cmssite.api.hpp.skincode.required")); + } + } + } + + /** + * @return the l10NService + */ + public L10NService getL10NService() + { + return l10NService; + } + + /** + * @param l10nService + * the l10NService to set + */ + public void setL10NService(final L10NService l10nService) + { + l10NService = l10nService; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenPaymentService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenPaymentService.java new file mode 100644 index 000000000..373b48ee0 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenPaymentService.java @@ -0,0 +1,55 @@ +/** + * + */ +package com.adyen.services; + +import de.hybris.platform.core.model.c2l.CurrencyModel; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; + +import java.math.BigDecimal; +import java.util.Currency; +import java.util.LinkedHashMap; + + + +/** + * @author Kenneth Zhou + * + */ +public interface AdyenPaymentService +{ + public PaymentTransactionEntryModel authorize(final BigDecimal amount, final Currency currency, final CartModel cartModel, + final AdyenPaymentInfoModel adyenPaymentInfoModel, + final String securityCode, final String userAgent, final String accept); + + public PaymentTransactionEntryModel authorize3DSecure(final CartModel cartModel, final String paResponse, + final String md, final String shopperIp, final String userAgent, final String accept); + + public PaymentTransactionEntryModel cancelOrRefund(final PaymentTransactionModel transaction, final String reference, + final CurrencyModel currency, final Double amount); + + + public void maybeClearAuthorizeHistory(CartModel cart); + + public PaymentTransactionEntryModel capture(final PaymentTransactionModel transaction, final String reference); + + void clearPaymentTransaction(final String code); + + PaymentTransactionModel createTransaction(final String cartCode); + + AdyenPaymentTransactionEntryModel createHPPAuthorisePTE(final String cartCode, final String pspReference, final String authResult); + + AdyenPaymentTransactionEntryModel createHPPAuthorisePTE(final AbstractOrderModel order, final String pspReference, + final String authResult); + + public AbstractOrderModel getOrderByPSPReference(final String pspReference); + + public LinkedHashMap buildHPPOpenInvoiceData(); + + public LinkedHashMap buildHPPOpenInvoiceData(final String merchantData); +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenServicesStandalone.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenServicesStandalone.java new file mode 100644 index 000000000..de6c585cc --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/AdyenServicesStandalone.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.jalo.JaloSession; +import de.hybris.platform.util.RedeployUtilities; +import de.hybris.platform.util.Utilities; + + +/** + * Demonstration of how to write a standalone application that can be run directly from within eclipse or from the + * commandline.
    + * To run this from commandline, just use the following command:
    + * + * java -jar bootstrap/bin/ybootstrap.jar "new com.adyen.services.AdyenServicesStandalone().run();" + * From eclipse, just run as Java Application. Note that you maybe need to add all other projects like + * ext-commerce, ext-pim to the Launch configuration classpath. + */ +public class AdyenServicesStandalone +{ + /** + * Main class to be able to run it directly as a java program. + * + * @param args + * the arguments from commandline + */ + public static void main(final String[] args) + { + new AdyenServicesStandalone().run(); + } + + public void run() + { + Registry.activateStandaloneMode(); + Registry.activateMasterTenant(); + + final JaloSession jaloSession = JaloSession.getCurrentSession(); + System.out.println("Session ID: " + jaloSession.getSessionID()); //NOPMD + System.out.println("User: " + jaloSession.getUser()); //NOPMD + Utilities.printAppInfo(); + + RedeployUtilities.shutdown(); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/constants/AdyenServicesConstants.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/constants/AdyenServicesConstants.java new file mode 100644 index 000000000..5d22a74c3 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/constants/AdyenServicesConstants.java @@ -0,0 +1,29 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.constants; + +/** + * Global class for all AdyenServices constants. You can add global constants for your extension into this class. + */ +public final class AdyenServicesConstants extends GeneratedAdyenServicesConstants +{ + public static final String EXTENSIONNAME = "adyenServices"; + + private AdyenServicesConstants() + { + //empty to avoid instantiating this constant class + } + + // implement here constants used by this extension +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/ExtCustomerAccountService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/ExtCustomerAccountService.java new file mode 100644 index 000000000..e9a6b2b29 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/ExtCustomerAccountService.java @@ -0,0 +1,21 @@ +/** + * + */ +package com.adyen.services.customer; + +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.payment.dto.BillingInfo; +import de.hybris.platform.payment.dto.CardInfo; + + + +/** + * @author Kenneth Zhou + * + */ +public interface ExtCustomerAccountService +{ + public AdyenPaymentInfoModel createAdyenPaymentSubscription(CustomerModel customerModel, CardInfo cardInfo, + BillingInfo billingInfo, String titleCode, String paymentProvider, boolean saveInAccount); +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/impl/AdyenCustomerAccountService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/impl/AdyenCustomerAccountService.java new file mode 100644 index 000000000..7cdc22444 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/customer/impl/AdyenCustomerAccountService.java @@ -0,0 +1,120 @@ +/** + * + */ +package com.adyen.services.customer.impl; + +import de.hybris.platform.commerceservices.customer.impl.DefaultCustomerAccountService; +import de.hybris.platform.core.model.c2l.CurrencyModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.user.AddressModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.core.model.user.TitleModel; +import de.hybris.platform.payment.AdapterException; +import de.hybris.platform.payment.dto.BillingInfo; +import de.hybris.platform.payment.dto.CardInfo; +import de.hybris.platform.payment.dto.NewSubscription; +import de.hybris.platform.servicelayer.util.ServicesUtil; + +import java.util.Currency; +import java.util.UUID; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.adyen.services.customer.ExtCustomerAccountService; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenCustomerAccountService extends DefaultCustomerAccountService implements ExtCustomerAccountService +{ + private static final Logger LOG = Logger.getLogger(AdyenCustomerAccountService.class); + + /* + * (non-Javadoc) + * + * @see + * com.adyen.services.customer.ExtCustomerAccountService#createAdyenPaymentSubscription(de.hybris.platform.core.model + * .user.CustomerModel, de.hybris.platform.payment.dto.CardInfo, de.hybris.platform.payment.dto.BillingInfo, + * java.lang.String, java.lang.String, boolean) + */ + @Override + public AdyenPaymentInfoModel createAdyenPaymentSubscription(final CustomerModel customerModel, final CardInfo cardInfo, + final BillingInfo billingInfo, final String titleCode, final String paymentProvider, final boolean saveInAccount) + { + ServicesUtil.validateParameterNotNull(customerModel, "Customer cannot be null"); + ServicesUtil.validateParameterNotNull(paymentProvider, "PaymentProvider cannot be null"); + final CurrencyModel currencyModel = getCurrency(customerModel); + ServicesUtil.validateParameterNotNull(currencyModel, "Customer session currency cannot be null"); + final Currency currency = getI18nService().getBestMatchingJavaCurrency(currencyModel.getIsocode()); + final AddressModel billingAddress = (AddressModel) getModelService().create(AddressModel.class); + if (StringUtils.isNotBlank(titleCode)) + { + final TitleModel title = new TitleModel(); + title.setCode(titleCode); + billingAddress.setTitle(getFlexibleSearchService().getModelByExample(title)); + } + billingAddress.setFirstname(billingInfo.getFirstName()); + billingAddress.setLastname(billingInfo.getLastName()); + billingAddress.setLine1(billingInfo.getStreet1()); + billingAddress.setLine2(billingInfo.getStreet2()); + billingAddress.setTown(billingInfo.getCity()); + billingAddress.setPostalcode(billingInfo.getPostalCode()); + billingAddress.setCountry(getCommonI18NService().getCountry(billingInfo.getCountry())); + final String email = getCustomerEmailResolutionService().getEmailForCustomer(customerModel); + billingAddress.setEmail(email); + final String merchantTransactionCode = (new StringBuilder(String.valueOf(customerModel.getUid()))).append("-") + .append(UUID.randomUUID()).toString(); + try + { + final NewSubscription subscription = getPaymentService().createSubscription(merchantTransactionCode, paymentProvider, + currency, billingAddress, cardInfo); + if (StringUtils.isNotBlank(subscription.getSubscriptionID())) + { + final AdyenPaymentInfoModel adyenPaymentInfoModel = (AdyenPaymentInfoModel) getModelService().create( + AdyenPaymentInfoModel.class); + adyenPaymentInfoModel.setCode((new StringBuilder(String.valueOf(customerModel.getUid()))).append("_") + .append(UUID.randomUUID()).toString()); + adyenPaymentInfoModel.setUser(customerModel); + adyenPaymentInfoModel.setSubscriptionId(subscription.getSubscriptionID()); + adyenPaymentInfoModel.setNumber(getMaskedCardNumber(cardInfo.getCardNumber())); + adyenPaymentInfoModel.setType(cardInfo.getCardType()); + adyenPaymentInfoModel.setCcOwner(cardInfo.getCardHolderFullName()); + adyenPaymentInfoModel.setValidToMonth(String.format("%02d", new Object[] + { cardInfo.getExpirationMonth() })); + adyenPaymentInfoModel.setValidToYear(String.valueOf(cardInfo.getExpirationYear())); + if (cardInfo.getIssueMonth() != null) + { + adyenPaymentInfoModel.setValidFromMonth(String.valueOf(cardInfo.getIssueMonth())); + } + if (cardInfo.getIssueYear() != null) + { + adyenPaymentInfoModel.setValidFromYear(String.valueOf(cardInfo.getIssueYear())); + } + adyenPaymentInfoModel.setSubscriptionId(subscription.getSubscriptionID()); + adyenPaymentInfoModel.setSaved(saveInAccount); + if (!StringUtils.isEmpty(cardInfo.getIssueNumber())) + { + adyenPaymentInfoModel.setIssueNumber(Integer.valueOf(cardInfo.getIssueNumber())); + } + billingAddress.setOwner(adyenPaymentInfoModel); + adyenPaymentInfoModel.setBillingAddress(billingAddress); + getModelService().saveAll(new Object[] + { billingAddress, adyenPaymentInfoModel }); + getModelService().refresh(customerModel); + addPaymentInfo(customerModel, adyenPaymentInfoModel); + return adyenPaymentInfoModel; + } + } + catch (final AdapterException ae) + { + LOG.error(String.format("Failed to create subscription for customer %s due to error of [%s]", new Object[] + { customerModel.getUid(), ae.getMessage() })); + return null; + } + return null; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/event/AdyenNotificationEvent.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/event/AdyenNotificationEvent.java new file mode 100644 index 000000000..469f42626 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/event/AdyenNotificationEvent.java @@ -0,0 +1,31 @@ +/** + * + */ +package com.adyen.services.event; + +import de.hybris.platform.servicelayer.event.events.AbstractEvent; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenNotificationEvent extends AbstractEvent +{ + private final AdyenNotificationRequest notificationRequest; + + public AdyenNotificationEvent(final AdyenNotificationRequest notificationRequest) + { + super(); + this.notificationRequest = notificationRequest; + } + + public AdyenNotificationRequest getNotificationRequest() + { + return notificationRequest; + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenCommerceCheckoutService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenCommerceCheckoutService.java new file mode 100644 index 000000000..004627d0f --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenCommerceCheckoutService.java @@ -0,0 +1,83 @@ +/** + * + */ +package com.adyen.services.impl; + +import de.hybris.platform.commerceservices.order.impl.DefaultCommerceCheckoutService; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.order.payment.PaymentInfoModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.servicelayer.session.SessionService; +import de.hybris.platform.servicelayer.util.ServicesUtil; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Currency; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.adyen.services.AdyenPaymentService; + + +/** + * @author delli + * + */ +public class AdyenCommerceCheckoutService extends DefaultCommerceCheckoutService +{ + private SessionService sessionService; + private static final Logger LOG = Logger.getLogger(AdyenCommerceCheckoutService.class); + + public PaymentTransactionEntryModel authorizeAdyenPaymentAmount(final CartModel cartModel, final String securityCode, + final String paymentProvider, BigDecimal amount) + { + ServicesUtil.validateParameterNotNull(cartModel, "Cart model cannot be null"); + ServicesUtil.validateParameterNotNull(cartModel.getPaymentInfo(), "Payment information on cart cannot be null"); + if (null == amount) + { + final Double totalPrice = cartModel.getTotalPrice(); + final Double totalTax = !cartModel.getNet().booleanValue() || cartModel.getStore() == null + || !cartModel.getStore().getExternalTaxEnabled().booleanValue() ? Double.valueOf(0.0D) : cartModel.getTotalTax(); + final BigDecimal totalPriceWithoutTaxBD = (new BigDecimal(totalPrice != null ? totalPrice.doubleValue() : 0.0D)) + .setScale(2, RoundingMode.HALF_EVEN); + final BigDecimal totalPriceBD = (new BigDecimal(totalTax != null ? totalTax.doubleValue() : 0.0D)).setScale(2, + RoundingMode.HALF_EVEN).add(totalPriceWithoutTaxBD); + amount = totalPriceBD; + } + + ((AdyenPaymentService) getPaymentService()).maybeClearAuthorizeHistory(cartModel); + PaymentTransactionEntryModel transactionEntryModel = null; + final PaymentInfoModel paymentInfo = cartModel.getPaymentInfo(); + if ((paymentInfo instanceof AdyenPaymentInfoModel) + && (StringUtils.isNotBlank(((AdyenPaymentInfoModel) paymentInfo).getSubscriptionId()))) + { + final Currency currency = getI18nService().getBestMatchingJavaCurrency(cartModel.getCurrency().getIsocode()); + + transactionEntryModel = ((AdyenPaymentService) getPaymentService()).authorize(amount, currency, cartModel, + ((AdyenPaymentInfoModel) paymentInfo), securityCode, + (String) sessionService.getAttribute("userAgent"), (String) sessionService.getAttribute("accept")); + sessionService.removeAttribute("userAgent"); + sessionService.removeAttribute("accept"); + } + return transactionEntryModel; + } + + /** + * @return the sessionService + */ + public SessionService getSessionService() + { + return sessionService; + } + + /** + * @param sessionService + * the sessionService to set + */ + public void setSessionService(final SessionService sessionService) + { + this.sessionService = sessionService; + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenOrderCancelPaymentServiceAdapter.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenOrderCancelPaymentServiceAdapter.java new file mode 100644 index 000000000..24c7ea005 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/AdyenOrderCancelPaymentServiceAdapter.java @@ -0,0 +1,90 @@ +/** + * + */ +package com.adyen.services.impl; + +import de.hybris.platform.core.enums.OrderStatus; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.order.CalculationService; +import de.hybris.platform.order.exceptions.CalculationException; +import de.hybris.platform.ordercancel.OrderCancelPaymentServiceAdapter; +import de.hybris.platform.payment.model.PaymentTransactionModel; + +import com.adyen.services.AdyenPaymentService; + + +/** + * @author delli + * + */ +public class AdyenOrderCancelPaymentServiceAdapter implements OrderCancelPaymentServiceAdapter +{ + private CalculationService calculationService; + private AdyenPaymentService adyenPaymentService; + + /* + * (non-Javadoc) + * + * @see de.hybris.platform.ordercancel.OrderCancelPaymentServiceAdapter#recalculateOrderAndModifyPayments(de.hybris. + * platform.core.model.order.OrderModel) + */ + @Override + public void recalculateOrderAndModifyPayments(final OrderModel ordermodel) + { + Double modificationAmount = null; + + try + { + //partial cancel order + if (!OrderStatus.CANCELLED.getCode().equals(ordermodel.getStatus().getCode())) + { + final Double originalPrice = ordermodel.getTotalPrice(); + calculationService.recalculate(ordermodel); + final Double totalPrice = ordermodel.getTotalPrice(); + modificationAmount = new Double(originalPrice.doubleValue() - totalPrice.doubleValue()); + } + } + catch (final CalculationException e) + { + e.printStackTrace(); + } + + final PaymentTransactionModel transaction = ordermodel.getPaymentTransactions().get(0); + getAdyenPaymentService().cancelOrRefund(transaction, ordermodel.getCode(), ordermodel.getCurrency(), modificationAmount); + } + + /** + * @return the calculationService + */ + public CalculationService getCalculationService() + { + return calculationService; + } + + /** + * @param calculationService + * the calculationService to set + */ + public void setCalculationService(final CalculationService calculationService) + { + this.calculationService = calculationService; + } + + /** + * @return the adyenPaymentService + */ + public AdyenPaymentService getAdyenPaymentService() + { + return adyenPaymentService; + } + + /** + * @param adyenPaymentService + * the adyenPaymentService to set + */ + public void setAdyenPaymentService(final AdyenPaymentService adyenPaymentService) + { + this.adyenPaymentService = adyenPaymentService; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/DefaultAdyenPaymentService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/DefaultAdyenPaymentService.java new file mode 100644 index 000000000..046979faf --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/impl/DefaultAdyenPaymentService.java @@ -0,0 +1,559 @@ +/** + * + */ +package com.adyen.services.impl; + +import de.hybris.platform.cms2.model.site.CMSSiteModel; +import de.hybris.platform.cms2.servicelayer.services.CMSSiteService; +import de.hybris.platform.core.model.c2l.CurrencyModel; +import de.hybris.platform.core.model.order.AbstractOrderEntryModel; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.user.AddressModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.order.CartService; +import de.hybris.platform.payment.AdapterException; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.impl.DefaultPaymentServiceImpl; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.servicelayer.i18n.CommonI18NService; +import de.hybris.platform.servicelayer.model.ModelService; +import de.hybris.platform.servicelayer.search.FlexibleSearchService; +import de.hybris.platform.servicelayer.user.UserService; +import de.hybris.platform.util.TaxValue; + +import java.math.BigDecimal; +import java.util.Currency; +import java.util.Date; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.adyen.services.AdyenPaymentService; +import com.adyen.services.integration.AdyenService; +import com.adyen.services.integration.data.request.AdyenModificationRequestBuilder; +import com.adyen.services.integration.data.request.AdyenPaymentRequest; +import com.adyen.services.integration.data.request.AdyenPaymentRequestBuilder; +import com.adyen.services.integration.data.response.AdyenModificationResponse; + + +/** + * @author Kenneth Zhou + * + */ +public class DefaultAdyenPaymentService extends DefaultPaymentServiceImpl implements AdyenPaymentService +{ + private static final Logger LOG = Logger.getLogger(DefaultAdyenPaymentService.class); + private ModelService modelService; + private AdyenService adyenService; + private UserService userService; + private CMSSiteService cmsSiteService; + private CommonI18NService commonI18NService; + private FlexibleSearchService flexibleSearchService; + private CartService cartService; + + /** + * @return the flexibleSearchService + */ + public FlexibleSearchService getFlexibleSearchService() + { + return flexibleSearchService; + } + + /** + * @param flexibleSearchService + * the flexibleSearchService to set + */ + @Override + public void setFlexibleSearchService(final FlexibleSearchService flexibleSearchService) + { + this.flexibleSearchService = flexibleSearchService; + } + + /** + * @return the commonI18NService + */ + public CommonI18NService getCommonI18NService() + { + return commonI18NService; + } + + /** + * @param commonI18NService + * the commonI18NService to set + */ + @Override + public void setCommonI18NService(final CommonI18NService commonI18NService) + { + this.commonI18NService = commonI18NService; + } + + /** + * @return the cmsSiteService + */ + public CMSSiteService getCmsSiteService() + { + return cmsSiteService; + } + + /** + * @param cmsSiteService + * the cmsSiteService to set + */ + public void setCmsSiteService(final CMSSiteService cmsSiteService) + { + this.cmsSiteService = cmsSiteService; + } + + /** + * @return the adyenService + */ + public AdyenService getAdyenService() + { + return adyenService; + } + + /** + * @param adyenService + * the adyenService to set + */ + public void setAdyenService(final AdyenService adyenService) + { + this.adyenService = adyenService; + } + + /** + * @return the userService + */ + public UserService getUserService() + { + return userService; + } + + /** + * @param userService + * the userService to set + */ + public void setUserService(final UserService userService) + { + this.userService = userService; + } + + /** + * @return the modelService + */ + public ModelService getModelService() + { + return modelService; + } + + /** + * @param modelService + * the modelService to set + */ + @Override + public void setModelService(final ModelService modelService) + { + this.modelService = modelService; + } + + /** + * @return the cartService + */ + public CartService getCartService() + { + return cartService; + } + + /** + * @param cartService + * the cartService to set + */ + public void setCartService(final CartService cartService) + { + this.cartService = cartService; + } + + @Override + public PaymentTransactionEntryModel authorize(final BigDecimal amount, + final Currency currency, final CartModel cartModel, final AdyenPaymentInfoModel adyenPaymentInfoModel, + final String securityCode, final String userAgent, final String accept) + { + final PaymentTransactionModel transaction = (PaymentTransactionModel) this.modelService + .create(PaymentTransactionModel.class); + final String merchantTransactionCode = cartModel.getCode(); + transaction.setCode(merchantTransactionCode); + transaction.setOrder(cartModel); + modelService.save(transaction); + getModelService().saveAll(new Object[] + { cartModel, transaction }); + final AdyenPaymentRequest paymentRequest = createAuthoriseRequest(merchantTransactionCode, amount, currency, + cartModel.getDeliveryAddress(), adyenPaymentInfoModel, securityCode, userAgent, accept); + + return adyenService.authorise(transaction, paymentRequest, false); + } + + @Override + public PaymentTransactionEntryModel authorize3DSecure(final CartModel cartModel, final String paResponse, + final String md, final String shopperIp, final String userAgent, final String accept) + { + final PaymentTransactionModel transaction = (PaymentTransactionModel) this.modelService + .create(PaymentTransactionModel.class); + transaction.setCode(cartModel.getCode()); + transaction.setOrder(cartModel); + modelService.save(transaction); + getModelService().saveAll(new Object[] + { cartModel, transaction }); + final AdyenPaymentRequestBuilder builder = new AdyenPaymentRequestBuilder(); + builder.create3DRequest(cartModel.getCode(), shopperIp, getCmsSiteService().getCurrentSite().getAdyenMerchantAccount(), + paResponse, md); + builder.browserInfo(userAgent, accept); + final AdyenPaymentRequest paymentRequest = builder.getPaymentRequest(); + return adyenService.authorise(transaction, paymentRequest, true); + } + + @Override + public PaymentTransactionEntryModel cancelOrRefund(final PaymentTransactionModel transaction, final String reference, + final CurrencyModel currency, final Double amount) + { + String merchantAccount = null; + if (transaction.getOrder().getSite() instanceof CMSSiteModel) + { + merchantAccount = ((CMSSiteModel) transaction.getOrder().getSite()).getAdyenMerchantAccount(); + } + final AdyenModificationRequestBuilder builder = new AdyenModificationRequestBuilder(merchantAccount, + transaction.getRequestId(), reference); + + if (amount != null) + { + builder.modificationAmount(currency.getIsocode(), amount); + } + return adyenService.cancelOrRefund(transaction, builder.getRequest()); + } + + + + /* + * (non-Javadoc) + * + * @see + * com.adyen.services.AdyenPaymentService#maybeClearAuthorizeHistory(de.hybris.platform.core.model.order.CartModel) + */ + @Override + public void maybeClearAuthorizeHistory(final CartModel cart) + { + if (CollectionUtils.isNotEmpty(cart.getPaymentTransactions())) + { + for (final PaymentTransactionModel pt : cart.getPaymentTransactions()) + { + clearPaymentTransaction(pt); + } + } + else + { + try + { + final PaymentTransactionModel model = getFlexibleSearchService().getModelByExample( + new PaymentTransactionModel(cart.getCode())); + if (model != null) + { + clearPaymentTransaction(model); + } + } + catch (final Exception e) + { + LOG.error(e.getMessage()); + } + } + } + + /** + * @param cartCode + * @param pspReference + * @return + */ + @Override + public PaymentTransactionModel createTransaction(final String cartCode) + { + final PaymentTransactionModel transaction = (PaymentTransactionModel) this.modelService + .create(PaymentTransactionModel.class); + transaction.setCode(cartCode); + transaction.setPaymentProvider("Adyen"); + this.modelService.save(transaction); + + final CartModel cartModel = getCartService().getSessionCart(); + transaction.setOrder(cartModel); + this.modelService.saveAll(new Object[] + { transaction, cartModel }); + return transaction; + } + + @Override + public AdyenPaymentTransactionEntryModel createHPPAuthorisePTE(final String cartCode, final String pspReference, + final String authResult) + { + final CartModel cartModel = getCartService().getSessionCart(); + createHPPAuthorisePTE(cartModel, pspReference, authResult); + return null; + } + + @Override + public AdyenPaymentTransactionEntryModel createHPPAuthorisePTE(final AbstractOrderModel order, final String pspReference, + final String authResult) + { + if (order != null) + { + final PaymentTransactionModel transaction = order.getPaymentTransactions().get(0); + transaction.setRequestId(pspReference); + + final AdyenPaymentTransactionEntryModel entry = (AdyenPaymentTransactionEntryModel) this.modelService + .create(AdyenPaymentTransactionEntryModel.class); + entry.setCode(getAdyenEntryCode(transaction)); + entry.setTime(new Date()); + entry.setPaymentTransaction(transaction); + entry.setRequestId(pspReference); + entry.setTransactionStatus(authResult); + entry.setType(PaymentTransactionType.HPP_RESULT); + + entry.setCurrency(order.getCurrency()); + entry.setAmount(new BigDecimal(order.getTotalPrice().doubleValue())); + transaction.setOrder(order); + this.modelService.saveAll(new Object[] + { transaction, order, entry }); + this.modelService.refresh(order); + this.modelService.refresh(transaction); + return entry; + } + return null; + } + + private String getAdyenEntryCode(final PaymentTransactionModel transaction) + { + if (transaction.getEntries() == null) + { + return transaction.getCode() + "-1"; + } + return transaction.getCode() + "-" + (transaction.getEntries().size() + 1); + } + + @Override + public void clearPaymentTransaction(final String code) + { + try + { + final PaymentTransactionModel transaction = getFlexibleSearchService() + .getModelByExample(new PaymentTransactionModel(code)); + if (transaction != null) + { + for (final PaymentTransactionEntryModel pte : transaction.getEntries()) + { + getModelService().remove(pte); + } + getModelService().remove(transaction); + } + } + catch (final Exception e) + { + LOG.error(e.getMessage()); + } + } + /** + * @param transaction + */ + public void clearPaymentTransaction(final PaymentTransactionModel transaction) + { + for (final PaymentTransactionEntryModel pte : transaction.getEntries()) + { + getModelService().remove(pte); + } + getModelService().remove(transaction); + } + + /** + * @param amount + * @param currency + * @param deliveryAddress + * @param adyenPaymentInfo + * @return + */ + private AdyenPaymentRequest createAuthoriseRequest(final String cartGuid, final BigDecimal amount, final Currency currency, + final AddressModel deliveryAddress, final AdyenPaymentInfoModel adyenPaymentInfo, final String securityCode, + final String userAgent, final String accept) + { + final AdyenPaymentRequestBuilder builder = new AdyenPaymentRequestBuilder(); + builder.createBaseRequest(cartGuid, ((CustomerModel) getUserService().getCurrentUser()).getUid(), + adyenPaymentInfo.getShopperIp(), getCmsSiteService().getCurrentSite().getAdyenMerchantAccount(), + ((CustomerModel) getUserService().getCurrentUser()).getCustomerID()); + builder.amount(amount, currency); + if (StringUtils.isEmpty(adyenPaymentInfo.getSocialSecurityNumber())) + { + builder.cardEncryptedJson(adyenPaymentInfo.getCardEncryptedJson()); + + final boolean recurringAndOneclickCondition = adyenPaymentInfo.isSavePayment() + || adyenPaymentInfo.getRecurringDetailReference() != null; + builder.recurringAndOneclick(recurringAndOneclickCondition); + + final boolean updateRecurringCondtion = adyenPaymentInfo.getRecurringDetailReference() != null; + builder.cardNeedUpdate(updateRecurringCondtion, securityCode, adyenPaymentInfo.getValidToMonth(), + adyenPaymentInfo.getValidToYear(), adyenPaymentInfo.getRecurringDetailReference()); + + builder.installments(adyenPaymentInfo.getInstallments()); + //3d-authorise need brownserInfo + builder.browserInfo(userAgent, accept); + } + else + { + //boleto + builder.boletoInfo(adyenPaymentInfo.getFirstName(), adyenPaymentInfo.getLastName(), + adyenPaymentInfo.getSocialSecurityNumber(), adyenPaymentInfo.getSelectedBrand(), + adyenPaymentInfo.getShopperStatement()); + } + return builder.getPaymentRequest(); + } + + + @Override + public PaymentTransactionEntryModel capture(final PaymentTransactionModel transaction, final String reference) + { + PaymentTransactionEntryModel auth = null; + for (final Iterator iterator = transaction.getEntries().iterator(); iterator.hasNext();) + { + final PaymentTransactionEntryModel pte = (PaymentTransactionEntryModel) iterator.next(); + if (pte.getType().equals(PaymentTransactionType.AUTHORIZATION)) + { + auth = pte; + break; + } + } + if (auth == null) + { + throw new AdapterException("Could not capture without authorization"); + } + final String newEntryCode = getNewTransactionEntryCode(transaction, PaymentTransactionType.CAPTURE_REQUESTED); + String merchantAccount = null; + if (transaction.getOrder().getSite() instanceof CMSSiteModel) + { + merchantAccount = ((CMSSiteModel) transaction.getOrder().getSite()).getAdyenMerchantAccount(); + } + final AdyenModificationRequestBuilder builder = new AdyenModificationRequestBuilder(merchantAccount, + transaction.getRequestId(), reference); + builder.modificationAmount(transaction.getOrder().getCurrency().getIsocode(), transaction.getOrder().getTotalPrice()); + final AdyenModificationResponse result = adyenService.capturePayment(builder.getRequest(), (CMSSiteModel) transaction + .getOrder().getSite()); + if (StringUtils.isNotBlank(result.getResponse()) + && AdyenModificationResponse.ADYEN_MDIFICATION_CAPTURE_RESPONSE.equals(result.getResponse())) + { + final PaymentTransactionEntryModel entry = (PaymentTransactionEntryModel) modelService + .create(PaymentTransactionEntryModel.class); + entry.setCurrency(transaction.getOrder().getCurrency()); + entry.setAmount(new BigDecimal(transaction.getOrder().getTotalPrice().doubleValue())); + entry.setType(PaymentTransactionType.CAPTURE_REQUESTED); + entry.setRequestId(result.getPspReference()); + entry.setTime(new Date()); + entry.setPaymentTransaction(transaction); + entry.setTransactionStatusDetails(result.getResponse()); + entry.setCode(newEntryCode); + modelService.save(entry); + return entry; + } + return null; + } + + private String getNewTransactionEntryCode(final PaymentTransactionModel transaction, + final PaymentTransactionType paymentTransactionType) + { + if (transaction.getEntries() == null) + { + return (new StringBuilder(String.valueOf(transaction.getCode()))).append("-").append(paymentTransactionType.getCode()) + .append("-1").toString(); + } + else + { + return (new StringBuilder(String.valueOf(transaction.getCode()))).append("-").append(paymentTransactionType.getCode()) + .append("-").append(transaction.getEntries().size() + 1).toString(); + } + } + + @Override + public AbstractOrderModel getOrderByPSPReference(final String pspReference) + { + final PaymentTransactionEntryModel entryExample = new PaymentTransactionEntryModel(); + entryExample.setRequestId(pspReference); + final List entries = getFlexibleSearchService().getModelsByExample(entryExample); + if (CollectionUtils.isNotEmpty(entries)) + { + for (final PaymentTransactionEntryModel paymentTransactionEntry : entries) + { + if (StringUtils.isEmpty(paymentTransactionEntry.getVersionID())) + { + return paymentTransactionEntry.getPaymentTransaction().getOrder(); + } + } + } + return null; + } + + /* + * (non-Javadoc) + * + * @see com.adyen.services.AdyenPaymentService#buildHPPOpenInvoiceData(java.lang.String) + */ + @Override + public LinkedHashMap buildHPPOpenInvoiceData() + { + final LinkedHashMap openInvoiceData = new LinkedHashMap(); + final CartModel cartModel = getCartService().getSessionCart(); + int i = 1; + + for (final AbstractOrderEntryModel entry : cartModel.getEntries()) + { + + openInvoiceData.put("openinvoicedata.line" + i + ".currencyCode", cartModel.getCurrency().getIsocode()); + openInvoiceData.put("openinvoicedata.line" + i + ".description", entry.getProduct().getName()); + + + openInvoiceData.put("openinvoicedata.line" + i + ".itemAmount", + new BigDecimal(100).multiply(new BigDecimal(entry.getBasePrice().toString())).intValue() + ""); + + + + final double taxValue = TaxValue.sumAbsoluteTaxValues(entry.getTaxValues()); + openInvoiceData.put("openinvoicedata.line" + i + ".itemVatAmount", + new BigDecimal(100).multiply(new BigDecimal(Double.toString(taxValue))).intValue() + ""); + + final double taxRate = TaxValue.sumRelativeTaxValues(entry.getTaxValues()); + openInvoiceData.put("openinvoicedata.line" + i + ".itemVatPercentage", + new BigDecimal(100).multiply(new BigDecimal(Double.toString(taxRate))).intValue() + ""); + + openInvoiceData.put("openinvoicedata.line" + i + ".numberOfItems", entry.getQuantity() + ""); + + openInvoiceData.put("openinvoicedata.line" + i + ".vatCategory", "None"); + + + + i++; + } + openInvoiceData.put("openinvoicedata.merchantData", "{}"); + openInvoiceData.put("openinvoicedata.numberOfLines", cartModel.getEntries().size() + ""); + openInvoiceData.put("openinvoicedata.refundDescription", cartModel.getCode()); + + return openInvoiceData; + } + + @Override + public LinkedHashMap buildHPPOpenInvoiceData(final String merchantData) + { + final LinkedHashMap openInvoiceData = buildHPPOpenInvoiceData(); + openInvoiceData.put("openinvoicedata.merchantData", merchantData); + return openInvoiceData; + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenHttpClientFactory.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenHttpClientFactory.java new file mode 100644 index 000000000..5c1040132 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenHttpClientFactory.java @@ -0,0 +1,99 @@ +/** + * + */ +package com.adyen.services.integration; + +import de.hybris.platform.cms2.model.site.CMSSiteModel; +import de.hybris.platform.cms2.servicelayer.services.CMSSiteService; + +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.client.HttpClient; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.FactoryBean; + + +/** + * @author Kenneth Zhou + * + */ +public class AdyenHttpClientFactory implements FactoryBean +{ + private static final Logger LOG = Logger.getLogger(AdyenHttpClientFactory.class); + private CMSSiteService cmsSiteService; + + /* + * (non-Javadoc) + * + * @see org.springframework.beans.factory.FactoryBean#getObject() + */ + @Override + public HttpClient getObject() throws Exception + { + try + { + final CMSSiteModel site = cmsSiteService.getCurrentSite(); + final CredentialsProvider provider = new BasicCredentialsProvider(); + final UsernamePasswordCredentials adyenUsernamePasswordCredentials = new UsernamePasswordCredentials( + site.getAdyenAPIAccount(), site.getAdyenAPIPassword()); + provider.setCredentials(AuthScope.ANY, adyenUsernamePasswordCredentials); + + final DefaultHttpClient client = new DefaultHttpClient(); + client.setCredentialsProvider(provider); + + return client; + } + catch (final Exception e) + { + LOG.error(e); + return null; + } + } + + /* + * (non-Javadoc) + * + * @see org.springframework.beans.factory.FactoryBean#getObjectType() + */ + @Override + public Class getObjectType() + { + // YTODO Auto-generated method stub + return HttpClient.class; + } + + /* + * (non-Javadoc) + * + * @see org.springframework.beans.factory.FactoryBean#isSingleton() + */ + @Override + public boolean isSingleton() + { + // YTODO Auto-generated method stub + return true; + } + + /** + * @return the cmsSiteService + */ + public CMSSiteService getCmsSiteService() + { + return cmsSiteService; + } + + /** + * @param cmsSiteService + * the cmsSiteService to set + */ + public void setCmsSiteService(final CMSSiteService cmsSiteService) + { + this.cmsSiteService = cmsSiteService; + } + + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenService.java new file mode 100644 index 000000000..d6ba091c9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/AdyenService.java @@ -0,0 +1,50 @@ +/** + * + */ +package com.adyen.services.integration; + +import de.hybris.platform.cms2.model.site.CMSSiteModel; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; + +import java.util.LinkedHashMap; + +import com.adyen.services.integration.data.PaymentMethods; +import com.adyen.services.integration.data.request.AdyenListRecurringDetailsRequest; +import com.adyen.services.integration.data.request.AdyenModificationRequest; +import com.adyen.services.integration.data.request.AdyenPaymentRequest; +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; +import com.adyen.services.integration.data.response.AdyenModificationResponse; + + +/** + * @author Kenneth Zhou + * + */ +public interface AdyenService +{ + public AdyenListRecurringDetailsResponse requestRecurringPaymentDetails(AdyenListRecurringDetailsRequest request); + + public AdyenPaymentTransactionEntryModel authorise(final PaymentTransactionModel transaction, + final AdyenPaymentRequest request, final boolean is3DSecure); + + public AdyenPaymentTransactionEntryModel cancelOrRefund(final PaymentTransactionModel transaction, + final AdyenModificationRequest request); + + public AdyenModificationResponse capturePayment(final AdyenModificationRequest request, final CMSSiteModel site); + + public PaymentMethods directory(); + + String calculateHMAC(final String hmacKey, final String signingString); + + String buildOpenInvoiceDataSig(final String merchantSig, LinkedHashMap openInvoiceData, String hmacKey); + + String compressString(final String input); + + String getCountryCode(); + + LinkedHashMap getDeliveryAddrData(); + + LinkedHashMap getBillingAddressData(); + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AdditionalData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AdditionalData.java new file mode 100644 index 000000000..bf15d008e --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AdditionalData.java @@ -0,0 +1,142 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + +import org.codehaus.jackson.annotate.JsonProperty; + + +public class AdditionalData implements java.io.Serializable +{ + @JsonProperty(value = "card.encrypted.json") + private String cardEncryptedJson; + + + /** + * "boletobancario.url" : + * "https://test.adyen.com/hpp/generationBoleto.shtml?data=AgABAQAk5QYbuNl9TiV63c5KeLTvXpB03Ml3krv%2FtwYj....2FFq3920vVWRd5HKHT96mCdVXyo4Gzq%2BTkzNbmT2XcgFf%2FwhYkU4%3D" + * ,
    + * "boletobancario.data" : + * "AgABAQAk5QYbuNl9TiV63c5KeLTvXpB03Ml3krv/twYj....2FFq3920vVWRd5HKHT96mCdVXyo4Gzq+TkzNbmT2XcgFf/whYkU4=",
    + * "boletobancario.expirationDate" : "2013-08-19",
    + * "boletobancario.dueDate" : "2013-08-12"
    + */ + @JsonProperty(value = "boletobancario.url") + private String boletobancarioUrl; + @JsonProperty(value = "boletobancario.data") + private String boletobancarioData; + @JsonProperty(value = "boletobancario.expirationDate") + private String boletobancarioExpirationDate; + @JsonProperty(value = "boletobancario.dueDate") + private String boletobancarioDueDate; + + + public AdditionalData() + { + // default constructor + } + + + public void setCardEncryptedJson(final String cardEncryptedJson) + { + this.cardEncryptedJson = cardEncryptedJson; + } + + + public String getCardEncryptedJson() + { + return cardEncryptedJson; + } + + /** + * @return the boletobancarioUrl + */ + public String getBoletobancarioUrl() + { + return boletobancarioUrl; + } + + + /** + * @param boletobancarioUrl + * the boletobancarioUrl to set + */ + public void setBoletobancarioUrl(final String boletobancarioUrl) + { + this.boletobancarioUrl = boletobancarioUrl; + } + + + /** + * @return the boletobancarioData + */ + public String getBoletobancarioData() + { + return boletobancarioData; + } + + + /** + * @param boletobancarioData + * the boletobancarioData to set + */ + public void setBoletobancarioData(final String boletobancarioData) + { + this.boletobancarioData = boletobancarioData; + } + + + /** + * @return the boletobancarioExpirationDate + */ + public String getBoletobancarioExpirationDate() + { + return boletobancarioExpirationDate; + } + + + /** + * @param boletobancarioExpirationDate + * the boletobancarioExpirationDate to set + */ + public void setBoletobancarioExpirationDate(final String boletobancarioExpirationDate) + { + this.boletobancarioExpirationDate = boletobancarioExpirationDate; + } + + + /** + * @return the boletobancarioDueDate + */ + public String getBoletobancarioDueDate() + { + return boletobancarioDueDate; + } + + + /** + * @param boletobancarioDueDate + * the boletobancarioDueDate to set + */ + public void setBoletobancarioDueDate(final String boletobancarioDueDate) + { + this.boletobancarioDueDate = boletobancarioDueDate; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AddressData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AddressData.java new file mode 100644 index 000000000..0d3b7486c --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AddressData.java @@ -0,0 +1,115 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + +public class AddressData implements java.io.Serializable +{ + + /** Generated property for AddressData.postalCode property defined at extension adyenServices. */ + private String postalCode; + /** Generated property for AddressData.street property defined at extension adyenServices. */ + private String street; + /** Generated property for AddressData.stateOrProvince property defined at extension adyenServices. */ + private String stateOrProvince; + /** Generated property for AddressData.houseNumberOrName property defined at extension adyenServices. */ + private String houseNumberOrName; + /** Generated property for AddressData.country property defined at extension adyenServices. */ + private String country; + /** Generated property for AddressData.city property defined at extension adyenServices. */ + private String city; + + public AddressData() + { + // default constructor + } + + + public void setPostalCode(final String postalCode) + { + this.postalCode = postalCode; + } + + + public String getPostalCode() + { + return postalCode; + } + + + public void setStreet(final String street) + { + this.street = street; + } + + + public String getStreet() + { + return street; + } + + + public void setStateOrProvince(final String stateOrProvince) + { + this.stateOrProvince = stateOrProvince; + } + + + public String getStateOrProvince() + { + return stateOrProvince; + } + + + public void setHouseNumberOrName(final String houseNumberOrName) + { + this.houseNumberOrName = houseNumberOrName; + } + + + public String getHouseNumberOrName() + { + return houseNumberOrName; + } + + + public void setCountry(final String country) + { + this.country = country; + } + + + public String getCountry() + { + return country; + } + + + public void setCity(final String city) + { + this.city = city; + } + + + public String getCity() + { + return city; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AmountData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AmountData.java new file mode 100644 index 000000000..75b085a58 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/AmountData.java @@ -0,0 +1,73 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + + +public class AmountData implements java.io.Serializable +{ + + /** + * Generated property for AmountData.value property defined at extension + * adyenServices. + */ + private Integer value; + /** + * Generated property for AmountData.currency property defined at extension + * adyenServices. + */ + private String currency; + + public AmountData() + { + // default constructor + } + + /** + * @return the value + */ + public Integer getValue() + { + return value; + } + + /** + * @param value + * the value to set + */ + public void setValue(final Integer value) + { + this.value = value; + } + + + + + public void setCurrency(final String currency) + { + this.currency = currency; + } + + + public String getCurrency() + { + return currency; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/BrowserInfo.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/BrowserInfo.java new file mode 100644 index 000000000..fe0c23ae3 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/BrowserInfo.java @@ -0,0 +1,99 @@ +/* + * Copyright 2015 Willian Oki + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package com.adyen.services.integration.data; + +import java.io.Serializable; + + +/** + * + */ +@SuppressWarnings("serial") +public class BrowserInfo implements Serializable +{ + private String userAgent; + private String acceptHeader; + + public BrowserInfo() + { + } + + public BrowserInfo(final String userAgent, final String acceptHeader) + { + this.userAgent = userAgent; + this.acceptHeader = acceptHeader; + } + + /** + * @return the userAgent + */ + public String getUserAgent() + { + return userAgent; + } + + /** + * @param userAgent + * the userAgent to set + */ + public void setUserAgent(final String userAgent) + { + this.userAgent = userAgent; + } + + /** + * @return the acceptHeader + */ + public String getAcceptHeader() + { + return acceptHeader; + } + + /** + * @param acceptHeader + * the acceptHeader to set + */ + public void setAcceptHeader(final String acceptHeader) + { + this.acceptHeader = acceptHeader; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + final StringBuilder builder = new StringBuilder(); + builder.append("BrowserInfo ["); + if (userAgent != null) + { + builder.append("userAgent="); + builder.append(userAgent); + builder.append(", "); + } + if (acceptHeader != null) + { + builder.append("acceptHeader="); + builder.append(acceptHeader); + } + builder.append("]"); + return builder.toString(); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/CardData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/CardData.java new file mode 100644 index 000000000..a23a021b9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/CardData.java @@ -0,0 +1,117 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + +import com.adyen.services.integration.data.AddressData; + +public class CardData implements java.io.Serializable +{ + + /** Generated property for CardData.expiryYear property defined at extension adyenServices. */ + private String expiryYear; + /** Generated property for CardData.expiryMonth property defined at extension adyenServices. */ + private String expiryMonth; + /** Generated property for CardData.cvc property defined at extension adyenServices. */ + private String cvc; + /** Generated property for CardData.billingAddress property defined at extension adyenServices. */ + private AddressData billingAddress; + /** Generated property for CardData.number property defined at extension adyenServices. */ + private String number; + /** Generated property for CardData.holderName property defined at extension adyenServices. */ + private String holderName; + + public CardData() + { + // default constructor + } + + + public void setExpiryYear(final String expiryYear) + { + this.expiryYear = expiryYear; + } + + + public String getExpiryYear() + { + return expiryYear; + } + + + public void setExpiryMonth(final String expiryMonth) + { + this.expiryMonth = expiryMonth; + } + + + public String getExpiryMonth() + { + return expiryMonth; + } + + + public void setCvc(final String cvc) + { + this.cvc = cvc; + } + + + public String getCvc() + { + return cvc; + } + + + public void setBillingAddress(final AddressData billingAddress) + { + this.billingAddress = billingAddress; + } + + + public AddressData getBillingAddress() + { + return billingAddress; + } + + + public void setNumber(final String number) + { + this.number = number; + } + + + public String getNumber() + { + return number; + } + + + public void setHolderName(final String holderName) + { + this.holderName = holderName; + } + + + public String getHolderName() + { + return holderName; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ContractType.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ContractType.java new file mode 100644 index 000000000..7f96ffa56 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ContractType.java @@ -0,0 +1,15 @@ +/** + * + */ +package com.adyen.services.integration.data; + +/** + * @author Kenneth Zhou + * + */ +public enum ContractType +{ + ONECLICK, RECURRING, PAYOUT; + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ErrorType.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ErrorType.java new file mode 100644 index 000000000..c736ef410 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ErrorType.java @@ -0,0 +1,13 @@ +/** + * + */ +package com.adyen.services.integration.data; + +/** + * @author delli + * + */ +public enum ErrorType +{ + internal, validation, security, configuration; +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Installments.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Installments.java new file mode 100644 index 000000000..4f320a352 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Installments.java @@ -0,0 +1,70 @@ +/* + * Copyright 2015 Willian Oki + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package com.adyen.services.integration.data; + +import java.io.Serializable; + + +/** + * + */ +@SuppressWarnings("serial") +public class Installments implements Serializable +{ + private int value; + + public Installments() + { + } + + public Installments(final int value) + { + this.value = value; + } + + /** + * @return the value + */ + public int getValue() + { + return value; + } + + /** + * @param value + * the value to set + */ + public void setValue(final int value) + { + this.value = value; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + final StringBuilder builder = new StringBuilder(); + builder.append("Installments [value="); + builder.append(value); + builder.append("]"); + return builder.toString(); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Iusser.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Iusser.java new file mode 100644 index 000000000..0d032628e --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/Iusser.java @@ -0,0 +1,50 @@ +/** + * + */ +package com.adyen.services.integration.data; + +/** + * @author delli + * + */ +public class Iusser +{ + private String issuerId; + private String name; + + /** + * @return the issuerId + */ + public String getIssuerId() + { + return issuerId; + } + + /** + * @param issuerId + * the issuerId to set + */ + public void setIssuerId(final String issuerId) + { + this.issuerId = issuerId; + } + + /** + * @return the name + */ + public String getName() + { + return name; + } + + /** + * @param name + * the name to set + */ + public void setName(final String name) + { + this.name = name; + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItem.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItem.java new file mode 100644 index 000000000..bb93061fd --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItem.java @@ -0,0 +1,173 @@ +/** + * + */ +package com.adyen.services.integration.data; + +import java.util.Map; + + +/** + * @author Kenneth Zhou + * + */ +public class NotificationItem implements java.io.Serializable +{ + private AmountData amount; + private String pspReference; + private String eventDate; + private String merchantAccountCode; + private String reason; + private String eventCode; + private String merchantReference; + private String[] operations; + private boolean success; + private Map additionalData; + private String paymentMethod; + private String originalReference; + + public AmountData getAmount() + { + return amount; + } + + public void setAmount(final AmountData amount) + { + this.amount = amount; + } + + public String getPspReference() + { + return pspReference; + } + + public void setPspReference(final String pspReference) + { + this.pspReference = pspReference; + } + + public String getEventDate() + { + return eventDate; + } + + public void setEventDate(final String eventDate) + { + this.eventDate = eventDate; + } + + public String getMerchantAccountCode() + { + return merchantAccountCode; + } + + public void setMerchantAccountCode(final String merchantAccountCode) + { + this.merchantAccountCode = merchantAccountCode; + } + + public String getReason() + { + return reason; + } + + public void setReason(final String reason) + { + this.reason = reason; + } + + public String getEventCode() + { + return eventCode; + } + + public void setEventCode(final String eventCode) + { + this.eventCode = eventCode; + } + + public String getMerchantReference() + { + return merchantReference; + } + + public void setMerchantReference(final String merchantReference) + { + this.merchantReference = merchantReference; + } + + public String[] getOperations() + { + return operations; + } + + public void setOperations(final String[] operations) + { + this.operations = operations; + } + + public Map getAdditionalData() + { + return additionalData; + } + + public void setAdditionalData(final Map additionalData) + { + this.additionalData = additionalData; + } + + public String getPaymentMethod() + { + return paymentMethod; + } + + public void setPaymentMethod(final String paymentMethod) + { + this.paymentMethod = paymentMethod; + } + + + + /** + * @return the success + */ + public boolean isSuccess() + { + return success; + } + + /** + * @param success + * the success to set + */ + public void setSuccess(final boolean success) + { + this.success = success; + } + + /** + * @return the originalReference + */ + public String getOriginalReference() + { + return originalReference; + } + + /** + * @param originalReference + * the originalReference to set + */ + public void setOriginalReference(final String originalReference) + { + this.originalReference = originalReference; + } + + @Override + public String toString() + { + return "[amount = " + amount + ", pspReference = " + pspReference + ", eventDate = " + eventDate + + ", merchantAccountCode = " + merchantAccountCode + ", reason = " + reason + ", eventCode = " + eventCode + + ", merchantReference = " + merchantReference + ", operations = " + operations + ", success = " + success + + ", additionalData = " + additionalData + ", paymentMethod = " + paymentMethod + "]"; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItemDto.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItemDto.java new file mode 100644 index 000000000..5fd6924ec --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/NotificationItemDto.java @@ -0,0 +1,51 @@ +/** + * + */ +package com.adyen.services.integration.data; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.annotate.JsonSetter; + + +/** + * @author Kenneth Zhou + * + */ +public class NotificationItemDto implements java.io.Serializable +{ + + @JsonProperty(value = "NotificationRequestItem") + private NotificationItem notificationRequestItem; + + /** + * @return the notificationRequestItem + */ + public NotificationItem getNotificationRequestItem() + { + return notificationRequestItem; + } + + /** + * @param notificationRequestItem + * the notificationRequestItem to set + */ + @JsonSetter(value = "NotificationRequestItem") + public void setNotificationRequestItem(final NotificationItem notificationRequestItem) + { + this.notificationRequestItem = notificationRequestItem; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + return notificationRequestItem.toString(); + } + + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethod.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethod.java new file mode 100644 index 000000000..f1d54b804 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethod.java @@ -0,0 +1,58 @@ + +package com.adyen.services.integration.data; + +import java.util.ArrayList; +import java.util.List; + + +public class PaymentMethod { + + private String brandCode; + private String name; + + private final List issuers = new ArrayList(); + + /** + * @return the issuers + */ + public List getIssuers() + { + return issuers; + } + + /** + * + * @return The brandCode + */ + public String getBrandCode() { + return brandCode; + } + + /** + * + * @param brandCode + * The brandCode + */ + public void setBrandCode(final String brandCode) { + this.brandCode = brandCode; + } + + /** + * + * @return + * The name + */ + public String getName() { + return name; + } + + /** + * + * @param name + * The name + */ + public void setName(final String name) { + this.name = name; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethods.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethods.java new file mode 100644 index 000000000..b182335c8 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/PaymentMethods.java @@ -0,0 +1,29 @@ + +package com.adyen.services.integration.data; + +import java.util.ArrayList; +import java.util.List; + +public class PaymentMethods { + + private List paymentMethods = new ArrayList(); + + /** + * + * @return + * The paymentMethods + */ + public List getPaymentMethods() { + return paymentMethods; + } + + /** + * + * @param paymentMethods + * The paymentMethods + */ + public void setPaymentMethods(final List paymentMethods) { + this.paymentMethods = paymentMethods; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringData.java new file mode 100644 index 000000000..c2b166894 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringData.java @@ -0,0 +1,54 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + +public class RecurringData implements java.io.Serializable +{ + + /** + * "recurring": { "contract" : "RECURRING, ONECLICK" } + */ + private String contract; + + public RecurringData() + { + // default constructor + } + + /** + * @return the contract + */ + public String getContract() + { + return contract; + } + + /** + * @param contract + * the contract to set + */ + public void setContract(final String contract) + { + this.contract = contract; + } + + + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailData.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailData.java new file mode 100644 index 000000000..447b3055f --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailData.java @@ -0,0 +1,198 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data; + +import java.util.Date; +import java.util.Map; + + +public class RecurringDetailData implements java.io.Serializable +{ + + private Date creationDate; + + private String recurringDetailReference; + + private CardData card; + + private String variant; + + private Map additionalData; + + private String alias; + + private String aliasType; + + private String firstPspReference; + + private String paymentMethodVariant; + + + public RecurringDetailData() + { + // default constructor + } + + + public void setCreationDate(final Date creationDate) + { + this.creationDate = creationDate; + } + + + public Date getCreationDate() + { + return creationDate; + } + + + public void setRecurringDetailReference(final String recurringDetailReference) + { + this.recurringDetailReference = recurringDetailReference; + } + + + public String getRecurringDetailReference() + { + return recurringDetailReference; + } + + + public void setCard(final CardData card) + { + this.card = card; + } + + + public CardData getCard() + { + return card; + } + + + public void setVariant(final String variant) + { + this.variant = variant; + } + + + public String getVariant() + { + return variant; + } + + + /** + * @return the additionalData + */ + public Map getAdditionalData() + { + return additionalData; + } + + + /** + * @param additionalData + * the additionalData to set + */ + public void setAdditionalData(final Map additionalData) + { + this.additionalData = additionalData; + } + + + /** + * @return the alias + */ + public String getAlias() + { + return alias; + } + + + /** + * @param alias + * the alias to set + */ + public void setAlias(final String alias) + { + this.alias = alias; + } + + + /** + * @return the aliasType + */ + public String getAliasType() + { + return aliasType; + } + + + /** + * @param aliasType + * the aliasType to set + */ + public void setAliasType(final String aliasType) + { + this.aliasType = aliasType; + } + + + /** + * @return the firstPspReference + */ + public String getFirstPspReference() + { + return firstPspReference; + } + + + /** + * @param firstPspReference + * the firstPspReference to set + */ + public void setFirstPspReference(final String firstPspReference) + { + this.firstPspReference = firstPspReference; + } + + + /** + * @return the paymentMethodVariant + */ + public String getPaymentMethodVariant() + { + return paymentMethodVariant; + } + + + /** + * @param paymentMethodVariant + * the paymentMethodVariant to set + */ + public void setPaymentMethodVariant(final String paymentMethodVariant) + { + this.paymentMethodVariant = paymentMethodVariant; + } + + + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailDto.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailDto.java new file mode 100644 index 000000000..e69b410e0 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/RecurringDetailDto.java @@ -0,0 +1,30 @@ +package com.adyen.services.integration.data; + +import org.codehaus.jackson.annotate.JsonProperty; + + +public class RecurringDetailDto implements java.io.Serializable +{ + + @JsonProperty("RecurringDetail") + private RecurringDetailData recurringDetail; + + public RecurringDetailDto() + { + // default constructor + } + + + public void setRecurringDetail(final RecurringDetailData recurringDetail) + { + this.recurringDetail = recurringDetail; + } + + + public RecurringDetailData getRecurringDetail() + { + return recurringDetail; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ResultCode.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ResultCode.java new file mode 100644 index 000000000..44ac0205b --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ResultCode.java @@ -0,0 +1,13 @@ +/** + * + */ +package com.adyen.services.integration.data; + +/** + * @author delli + * + */ +public enum ResultCode +{ + Authorised, Refused, Error, Cancelled, Received, RedirectShopper; +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ShopperName.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ShopperName.java new file mode 100644 index 000000000..449d1c3e4 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/ShopperName.java @@ -0,0 +1,36 @@ +package com.adyen.services.integration.data; + +import java.io.Serializable; + + +@SuppressWarnings("serial") +public class ShopperName implements Serializable +{ + private String firstName; + private String lastName; + + public ShopperName() + { + } + + public String getFirstName() + { + return firstName; + } + + public void setFirstName(final String firstName) + { + this.firstName = firstName; + } + + public String getLastName() + { + return lastName; + } + + public void setLastName(final String lastName) + { + this.lastName = lastName; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenFraudResultEntry.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenFraudResultEntry.java new file mode 100644 index 000000000..5772a9464 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenFraudResultEntry.java @@ -0,0 +1,73 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data.request; + +public class AdyenFraudResultEntry implements java.io.Serializable +{ + + /** Generated property for AdyenFraudResultEntry.checkId property defined at extension adyenServices. */ + private Integer checkId; + /** Generated property for AdyenFraudResultEntry.name property defined at extension adyenServices. */ + private String name; + /** Generated property for AdyenFraudResultEntry.accountScore property defined at extension adyenServices. */ + private Integer accountScore; + + public AdyenFraudResultEntry() + { + // default constructor + } + + + public void setCheckId(final Integer checkId) + { + this.checkId = checkId; + } + + + public Integer getCheckId() + { + return checkId; + } + + + public void setName(final String name) + { + this.name = name; + } + + + public String getName() + { + return name; + } + + + public void setAccountScore(final Integer accountScore) + { + this.accountScore = accountScore; + } + + + public Integer getAccountScore() + { + return accountScore; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenListRecurringDetailsRequest.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenListRecurringDetailsRequest.java new file mode 100644 index 000000000..ebe30cba4 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenListRecurringDetailsRequest.java @@ -0,0 +1,75 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data.request; + +import com.adyen.services.integration.data.RecurringData; + +public class AdyenListRecurringDetailsRequest implements java.io.Serializable +{ + + /** Generated property for AdyenListRecurringDetailsRequest.shopperReference property defined at extension adyenServices. */ + private String shopperReference; + /** Generated property for AdyenListRecurringDetailsRequest.recurring property defined at extension adyenServices. */ + private RecurringData recurring; + /** Generated property for AdyenListRecurringDetailsRequest.merchantAccount property defined at extension adyenServices. */ + private String merchantAccount; + + public AdyenListRecurringDetailsRequest() + { + // default constructor + } + + + public void setShopperReference(final String shopperReference) + { + this.shopperReference = shopperReference; + } + + + public String getShopperReference() + { + return shopperReference; + } + + + public void setRecurring(final RecurringData recurring) + { + this.recurring = recurring; + } + + + public RecurringData getRecurring() + { + return recurring; + } + + + public void setMerchantAccount(final String merchantAccount) + { + this.merchantAccount = merchantAccount; + } + + + public String getMerchantAccount() + { + return merchantAccount; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequest.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequest.java new file mode 100644 index 000000000..e6335f3b5 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequest.java @@ -0,0 +1,163 @@ +/* + * Copyright 2015 Willian Oki + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package com.adyen.services.integration.data.request; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Iterator; +import com.adyen.services.integration.data.AdditionalData; +import com.adyen.services.integration.data.AmountData; + + +/** + */ +@SuppressWarnings("serial") +public class AdyenModificationRequest implements Serializable +{ + private AdditionalData additionalData; + private String authorisationCode; + private String merchantAccount; + private AmountData modificationAmount; + private String originalReference; + private String reference; + + public AdyenModificationRequest() + { + } + + /** + * @return the merchantAccount + */ + public String getMerchantAccount() + { + return merchantAccount; + } + + /** + * @param merchantAccount + * the merchantAccount to set + */ + public void setMerchantAccount(final String merchantAccount) + { + this.merchantAccount = merchantAccount; + } + + /** + * @return the originalReference + */ + public String getOriginalReference() + { + return originalReference; + } + + /** + * @param originalReference + * the originalReference to set + */ + public void setOriginalReference(final String originalReference) + { + this.originalReference = originalReference; + } + + /** + * @return the reference + */ + public String getReference() + { + return reference; + } + + /** + * @param reference + * the reference to set + */ + public void setReference(final String reference) + { + this.reference = reference; + } + + + + /** + * @return the additionalData + */ + public AdditionalData getAdditionalData() + { + return additionalData; + } + + /** + * @param additionalData + * the additionalData to set + */ + public void setAdditionalData(final AdditionalData additionalData) + { + this.additionalData = additionalData; + } + + /** + * @return the authorisationCode + */ + public String getAuthorisationCode() + { + return authorisationCode; + } + + /** + * @param authorisationCode + * the authorisationCode to set + */ + public void setAuthorisationCode(final String authorisationCode) + { + this.authorisationCode = authorisationCode; + } + + /** + * @return the modificationAmount + */ + public AmountData getModificationAmount() + { + return modificationAmount; + } + + /** + * @param modificationAmount + * the modificationAmount to set + */ + public void setModificationAmount(final AmountData modificationAmount) + { + this.modificationAmount = modificationAmount; + } + + private String toString(final Collection collection, final int maxLen) + { + final StringBuilder builder = new StringBuilder(); + builder.append("["); + int i = 0; + for (final Iterator iterator = collection.iterator(); iterator.hasNext() && i < maxLen; i++) + { + if (i > 0) + { + builder.append(", "); + } + builder.append(iterator.next()); + } + builder.append("]"); + return builder.toString(); + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequestBuilder.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequestBuilder.java new file mode 100644 index 000000000..07a9de608 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenModificationRequestBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2015 Willian Oki + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package com.adyen.services.integration.data.request; + +import com.adyen.services.integration.data.AmountData; + + +public class AdyenModificationRequestBuilder +{ + private final AdyenModificationRequest request; + + /** + */ + public AdyenModificationRequestBuilder(final String merchantAccount, final String originalReference, final String reference) + { + super(); + this.request = new AdyenModificationRequest(); + request.setMerchantAccount(merchantAccount); + request.setOriginalReference(originalReference); + request.setReference(reference); + } + + public AdyenModificationRequest modificationAmount(final String currency, final Double amount) + { + final AmountData modificationAmount = new AmountData(); + modificationAmount.setCurrency(currency); + modificationAmount.setValue(new Integer((int) Math.round((amount.doubleValue() * 100)))); + request.setModificationAmount(modificationAmount); + return request; + } + + /** + * @return the request + */ + public AdyenModificationRequest getRequest() + { + return request; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenNotificationRequest.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenNotificationRequest.java new file mode 100644 index 000000000..d565a10e9 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenNotificationRequest.java @@ -0,0 +1,81 @@ +/** + * + */ +package com.adyen.services.integration.data.request; + +import java.util.Iterator; +import java.util.List; + +import org.codehaus.jackson.annotate.JsonIgnoreProperties; + +import com.adyen.services.integration.data.NotificationItemDto; + + +/** + * @author Kenneth Zhou + * + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class AdyenNotificationRequest implements java.io.Serializable +{ + private boolean live; + + private List notificationItems; + + /** + * @return the live + */ + public boolean isLive() + { + return live; + } + + /** + * @param live + * the live to set + */ + public void setLive(final boolean live) + { + this.live = live; + } + + /** + * @return the notificationItems + */ + public List getNotificationItems() + { + return notificationItems; + } + + /** + * @param notificationItems + * the notificationItems to set + */ + public void setNotificationItems(final List notificationItems) + { + this.notificationItems = notificationItems; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() + { + final StringBuffer toString = new StringBuffer("[live=" + live); + + for (final Iterator iterator = notificationItems.iterator(); iterator.hasNext();) + { + final NotificationItemDto notificationItemDto = (NotificationItemDto) iterator.next(); + toString.append("["); + toString.append(notificationItemDto.toString()); + toString.append("]"); + } + toString.append("]"); + return toString.toString(); + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequest.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequest.java new file mode 100644 index 000000000..3b53c31ef --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequest.java @@ -0,0 +1,435 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data.request; + +import com.adyen.services.integration.data.AdditionalData; +import com.adyen.services.integration.data.AddressData; +import com.adyen.services.integration.data.AmountData; +import com.adyen.services.integration.data.BrowserInfo; +import com.adyen.services.integration.data.CardData; +import com.adyen.services.integration.data.Installments; +import com.adyen.services.integration.data.RecurringData; +import com.adyen.services.integration.data.ShopperName; + + +public class AdyenPaymentRequest implements java.io.Serializable +{ + public static final String SHOPPER_INTERACTION_DEFAULT_VALUE = "Ecommerce"; + + private String reference; + /** + * Generated property for AdyenPaymentRequest.amount property defined at extension + * adyenServices. + */ + private AmountData amount; + /** + * Generated property for AdyenPaymentRequest.shopperIP property defined at extension + * adyenServices. + */ + private String shopperIP; + /** + * Generated property for AdyenPaymentRequest.shopperReference property defined at extension + * adyenServices. + */ + private String shopperReference; + /** + * Generated property for AdyenPaymentRequest.card property defined at extension + * adyenServices. + */ + private CardData card; + /** + * Generated property for AdyenPaymentRequest.fraudOffset property defined at extension + * adyenServices. + */ + private Integer fraudOffset; + /** + * Generated property for AdyenPaymentRequest.additionalData property defined at extension + * adyenServices. + */ + private AdditionalData additionalData; + /** + * Generated property for AdyenPaymentRequest.shopperEmail property defined at extension + * adyenServices. + */ + private String shopperEmail; + /** + * Generated property for AdyenPaymentRequest.merchantAccount property defined at extension + * adyenServices. + */ + private String merchantAccount; + + private AddressData billingAddress; + + private RecurringData recurring; + + private String selectedRecurringDetailReference; + private String shopperInteraction; + private Installments installments; + + /* 3d secure */ + private BrowserInfo browserInfo; + private String md; + private String paResponse; + + /* boleto */ + private String selectedBrand; + private String deliveryDate; + private String shopperStatement; + private String socialSecurityNumber; + private ShopperName shopperName; + + public AdyenPaymentRequest() + { + // default constructor + } + + /** + * @return the reference + */ + public String getReference() + { + return reference; + } + + /** + * @param reference + * the reference to set + */ + public void setReference(final String reference) + { + this.reference = reference; + } + + + public void setAmount(final AmountData amount) + { + this.amount = amount; + } + + + public AmountData getAmount() + { + return amount; + } + + + public void setShopperIP(final String shopperIP) + { + this.shopperIP = shopperIP; + } + + + public String getShopperIP() + { + return shopperIP; + } + + + public void setShopperReference(final String shopperReference) + { + this.shopperReference = shopperReference; + } + + + public String getShopperReference() + { + return shopperReference; + } + + + public void setCard(final CardData card) + { + this.card = card; + } + + + public CardData getCard() + { + return card; + } + + + public void setFraudOffset(final Integer fraudOffset) + { + this.fraudOffset = fraudOffset; + } + + + public Integer getFraudOffset() + { + return fraudOffset; + } + + + public void setAdditionalData(final AdditionalData additionalData) + { + this.additionalData = additionalData; + } + + + public AdditionalData getAdditionalData() + { + return additionalData; + } + + + public void setShopperEmail(final String shopperEmail) + { + this.shopperEmail = shopperEmail; + } + + + public String getShopperEmail() + { + return shopperEmail; + } + + + public void setMerchantAccount(final String merchantAccount) + { + this.merchantAccount = merchantAccount; + } + + + public String getMerchantAccount() + { + return merchantAccount; + } + + /** + * @return the billingAddress + */ + public AddressData getBillingAddress() + { + return billingAddress; + } + + /** + * @param billingAddress + * the billingAddress to set + */ + public void setBillingAddress(final AddressData billingAddress) + { + this.billingAddress = billingAddress; + } + + /** + * @return the recurring + */ + public RecurringData getRecurring() + { + return recurring; + } + + /** + * @param recurring + * the recurring to set + */ + public void setRecurring(final RecurringData recurring) + { + this.recurring = recurring; + } + + /** + * @return the selectedRecurringDetailReference + */ + public String getSelectedRecurringDetailReference() + { + return selectedRecurringDetailReference; + } + + /** + * @param selectedRecurringDetailReference + * the selectedRecurringDetailReference to set + */ + public void setSelectedRecurringDetailReference(final String selectedRecurringDetailReference) + { + this.selectedRecurringDetailReference = selectedRecurringDetailReference; + } + + /** + * @return the shopperInteraction + */ + public String getShopperInteraction() + { + return shopperInteraction; + } + + /** + * @param shopperInteraction + * the shopperInteraction to set + */ + public void setShopperInteraction(final String shopperInteraction) + { + this.shopperInteraction = shopperInteraction; + } + + /** + * @return the installments + */ + public Installments getInstallments() + { + return installments; + } + + /** + * @param installments + * the installments to set + */ + public void setInstallments(final Installments installments) + { + this.installments = installments; + } + + /** + * @return the browserInfo + */ + public BrowserInfo getBrowserInfo() + { + return browserInfo; + } + + /** + * @param browserInfo + * the browserInfo to set + */ + public void setBrowserInfo(final BrowserInfo browserInfo) + { + this.browserInfo = browserInfo; + } + + /** + * @return the md + */ + public String getMd() + { + return md; + } + + /** + * @param md + * the md to set + */ + public void setMd(final String md) + { + this.md = md; + } + + /** + * @return the paResponse + */ + public String getPaResponse() + { + return paResponse; + } + + /** + * @param paResponse + * the paResponse to set + */ + public void setPaResponse(final String paResponse) + { + this.paResponse = paResponse; + } + + /** + * @return the selectedBrand + */ + public String getSelectedBrand() + { + return selectedBrand; + } + + /** + * @param selectedBrand + * the selectedBrand to set + */ + public void setSelectedBrand(final String selectedBrand) + { + this.selectedBrand = selectedBrand; + } + + /** + * @return the deliveryDate + */ + public String getDeliveryDate() + { + return deliveryDate; + } + + /** + * @param deliveryDate + * the deliveryDate to set + */ + public void setDeliveryDate(final String deliveryDate) + { + this.deliveryDate = deliveryDate; + } + + /** + * @return the shopperStatement + */ + public String getShopperStatement() + { + return shopperStatement; + } + + /** + * @param shopperStatement + * the shopperStatement to set + */ + public void setShopperStatement(final String shopperStatement) + { + this.shopperStatement = shopperStatement; + } + + /** + * @return the socialSecurityNumber + */ + public String getSocialSecurityNumber() + { + return socialSecurityNumber; + } + + /** + * @param socialSecurityNumber + * the socialSecurityNumber to set + */ + public void setSocialSecurityNumber(final String socialSecurityNumber) + { + this.socialSecurityNumber = socialSecurityNumber; + } + + /** + * @return the shopperName + */ + public ShopperName getShopperName() + { + return shopperName; + } + + /** + * @param shopperName + * the shopperName to set + */ + public void setShopperName(final ShopperName shopperName) + { + this.shopperName = shopperName; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequestBuilder.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequestBuilder.java new file mode 100644 index 000000000..00d47f80f --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/request/AdyenPaymentRequestBuilder.java @@ -0,0 +1,138 @@ +/** + * + */ +package com.adyen.services.integration.data.request; + +import java.math.BigDecimal; +import java.util.Currency; + +import org.apache.commons.lang.StringUtils; + +import com.adyen.services.integration.data.AdditionalData; +import com.adyen.services.integration.data.AmountData; +import com.adyen.services.integration.data.BrowserInfo; +import com.adyen.services.integration.data.CardData; +import com.adyen.services.integration.data.ContractType; +import com.adyen.services.integration.data.Installments; +import com.adyen.services.integration.data.RecurringData; +import com.adyen.services.integration.data.ShopperName; + + +/** + * @author delli + * + */ +public class AdyenPaymentRequestBuilder +{ + private AdyenPaymentRequest paymentRequest; + + public AdyenPaymentRequest getPaymentRequest() + { + return paymentRequest; + } + + public void createBaseRequest(final String cartGuid, final String shopperEmail, final String shopperIp, + final String merchantAccount, final String shopperReference) + { + paymentRequest = new AdyenPaymentRequest(); + paymentRequest.setReference(cartGuid); + paymentRequest.setShopperEmail(shopperEmail); + paymentRequest.setShopperIP(shopperIp); + paymentRequest.setMerchantAccount(merchantAccount); + paymentRequest.setShopperReference(shopperReference); + paymentRequest.setFraudOffset(new Integer(0)); + } + + public void create3DRequest(final String cartGuid, final String shopperIp, final String merchantAccount, + final String paResponse, final String md) + { + paymentRequest = new AdyenPaymentRequest(); + paymentRequest.setReference(cartGuid); + paymentRequest.setShopperIP(shopperIp); + paymentRequest.setMerchantAccount(merchantAccount); + paymentRequest.setMd(md); + paymentRequest.setPaResponse(paResponse); + } + + public void amount(final BigDecimal amount, final Currency currency) + { + final AmountData amountData = new AmountData(); + amountData.setCurrency(currency.getCurrencyCode()); + amountData.setValue(new Integer(new BigDecimal(100).multiply((amount == null) ? BigDecimal.ZERO : amount).intValue())); + paymentRequest.setAmount(amountData); + } + + public void cardNeedUpdate(final boolean updateRecurringCondition, final String securityCode, final String expiryMonth, + final String expiryYear, final String recurringReference) + { + if (updateRecurringCondition) + { + final CardData card = new CardData(); + card.setCvc(securityCode); + card.setExpiryMonth(expiryMonth); + card.setExpiryYear(expiryYear); + paymentRequest.setCard(card); + paymentRequest.setSelectedRecurringDetailReference(recurringReference); + paymentRequest.setShopperInteraction(AdyenPaymentRequest.SHOPPER_INTERACTION_DEFAULT_VALUE); + } + } + + public void cardEncryptedJson(final String cardEncryptedJson) + { + if (cardEncryptedJson != null) + { + AdditionalData additionalData = null; + if (paymentRequest.getAdditionalData() == null) + { + additionalData = new AdditionalData(); + } + else + { + additionalData = paymentRequest.getAdditionalData(); + } + additionalData.setCardEncryptedJson(cardEncryptedJson); + paymentRequest.setAdditionalData(additionalData); + } + } + + public void recurringAndOneclick(final boolean condition) + { + if (condition) + { + final RecurringData recurring = new RecurringData(); + recurring.setContract(ContractType.RECURRING.name() + "," + ContractType.ONECLICK.name()); + paymentRequest.setRecurring(recurring); + } + } + + public void installments(final Integer installments) + { + if (installments != null && installments.intValue() > 0) + { + final Installments installmentsData = new Installments(); + installmentsData.setValue(installments.intValue()); + paymentRequest.setInstallments(installmentsData); + + } + } + + public void browserInfo(final String userAgent, final String acceptHeader) + { + final BrowserInfo browserInfo = new BrowserInfo(); + browserInfo.setUserAgent(StringUtils.isNotEmpty(userAgent) ? userAgent : "User-Agent"); + browserInfo.setAcceptHeader(StringUtils.isNotEmpty(acceptHeader) ? userAgent : "Accept"); + paymentRequest.setBrowserInfo(browserInfo); + } + + public void boletoInfo(final String firstName, final String lastName, final String ssn, final String selectedBrand, + final String shopperStatement) + { + final ShopperName name = new ShopperName(); + name.setFirstName(firstName); + name.setLastName(lastName); + paymentRequest.setShopperName(name); + paymentRequest.setSelectedBrand(selectedBrand); + paymentRequest.setSocialSecurityNumber(ssn); + paymentRequest.setShopperStatement(shopperStatement); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenListRecurringDetailsResponse.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenListRecurringDetailsResponse.java new file mode 100644 index 000000000..3055bd8ae --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenListRecurringDetailsResponse.java @@ -0,0 +1,92 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data.response; + +import java.util.Date; +import java.util.List; + +import com.adyen.services.integration.data.RecurringDetailDto; + + +public class AdyenListRecurringDetailsResponse implements java.io.Serializable +{ + + private Date creationDate; + + private List details; + + private String shopperReference; + + private String lastKnownShopperEmail; + + public AdyenListRecurringDetailsResponse() + { + // default constructor + } + + + public void setCreationDate(final Date creationDate) + { + this.creationDate = creationDate; + } + + + public Date getCreationDate() + { + return creationDate; + } + + + public void setDetails(final List details) + { + this.details = details; + } + + + public List getDetails() + { + return details; + } + + + public void setShopperReference(final String shopperReference) + { + this.shopperReference = shopperReference; + } + + + public String getShopperReference() + { + return shopperReference; + } + + + public void setLastKnownShopperEmail(final String lastKnownShopperEmail) + { + this.lastKnownShopperEmail = lastKnownShopperEmail; + } + + + public String getLastKnownShopperEmail() + { + return lastKnownShopperEmail; + } + + +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenModificationResponse.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenModificationResponse.java new file mode 100644 index 000000000..210d45c12 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenModificationResponse.java @@ -0,0 +1,167 @@ +package com.adyen.services.integration.data.response; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Iterator; + +import com.adyen.services.integration.data.AdditionalData; +import com.adyen.services.integration.data.ErrorType; + + +@SuppressWarnings("serial") +public class AdyenModificationResponse implements Serializable +{ + public final static String ADYEN_MODIFICATION_CANCEL_OR_REFUND_RESPONSE = "[cancelOrRefund-received]"; + public final static String ADYEN_MODIFICATION_CANCEL_RESPONSE = "[cancel-received]"; + public final static String ADYEN_MODIFICATION_REFUND_RESPONSE = "[refund-received]"; + public final static String ADYEN_MDIFICATION_CAPTURE_RESPONSE = "[capture-received]"; + + private AdditionalData additionalData; + private String pspReference; + private String response; + + private String status; + private String errorCode; + private String message; + private ErrorType errorType; + + public AdyenModificationResponse() + { + } + + /** + * @return the pspReference + */ + public String getPspReference() + { + return pspReference; + } + + /** + * @param pspReference + * the pspReference to set + */ + public void setPspReference(final String pspReference) + { + this.pspReference = pspReference; + } + + /** + * @return the response + */ + public String getResponse() + { + return response; + } + + /** + * @param response + * the response to set + */ + public void setResponse(final String response) + { + this.response = response; + } + + /** + * @return the additionalData + */ + public AdditionalData getAdditionalData() + { + return additionalData; + } + + /** + * @param additionalData + * the additionalData to set + */ + public void setAdditionalData(final AdditionalData additionalData) + { + this.additionalData = additionalData; + } + + /** + * @return the status + */ + public String getStatus() + { + return status; + } + + /** + * @param status + * the status to set + */ + public void setStatus(final String status) + { + this.status = status; + } + + /** + * @return the errorCode + */ + public String getErrorCode() + { + return errorCode; + } + + /** + * @param errorCode + * the errorCode to set + */ + public void setErrorCode(final String errorCode) + { + this.errorCode = errorCode; + } + + /** + * @return the message + */ + public String getMessage() + { + return message; + } + + /** + * @param message + * the message to set + */ + public void setMessage(final String message) + { + this.message = message; + } + + /** + * @return the errorType + */ + public ErrorType getErrorType() + { + return errorType; + } + + /** + * @param errorType + * the errorType to set + */ + public void setErrorType(final ErrorType errorType) + { + this.errorType = errorType; + } + + private String toString(final Collection collection, final int maxLen) + { + final StringBuilder builder = new StringBuilder(); + builder.append("["); + int i = 0; + for (final Iterator iterator = collection.iterator(); iterator.hasNext() && i < maxLen; i++) + { + if (i > 0) + { + builder.append(", "); + } + builder.append(iterator.next()); + } + builder.append("]"); + return builder.toString(); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenNotificationResponse.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenNotificationResponse.java new file mode 100644 index 000000000..5daeef8bb --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenNotificationResponse.java @@ -0,0 +1,32 @@ +/** + * + */ +package com.adyen.services.integration.data.response; + +/** + * @author Kenneth Zhou + * + */ +public class AdyenNotificationResponse +{ + private String notificationResponse; + + /** + * @return the notificationResponse + */ + public String getNotificationResponse() + { + return notificationResponse; + } + + /** + * @param notificationResponse + * the notificationResponse to set + */ + public void setNotificationResponse(final String notificationResponse) + { + this.notificationResponse = notificationResponse; + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenPaymentResponse.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenPaymentResponse.java new file mode 100644 index 000000000..ecc0fa0ec --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/data/response/AdyenPaymentResponse.java @@ -0,0 +1,311 @@ +/* + * ---------------------------------------------------------------- + * --- WARNING: THIS FILE IS GENERATED AND WILL BE OVERWRITTEN! + * --- Generated at 2015-6-29 10:14:52 + * ---------------------------------------------------------------- + * + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.integration.data.response; + +import java.util.List; +import java.util.Map; + +import com.adyen.services.integration.data.AmountData; +import com.adyen.services.integration.data.ErrorType; +import com.adyen.services.integration.data.ResultCode; +import com.adyen.services.integration.data.request.AdyenFraudResultEntry; + + +public class AdyenPaymentResponse implements java.io.Serializable +{ + + /** + * Generated property for AdyenPaymentResponse.pspReference property defined at extension + * adyenServices. + */ + private String pspReference; + /** + * Generated property for AdyenPaymentResponse.authCode property defined at extension + * adyenServices. + */ + private String authCode; + /** + * Generated property for AdyenPaymentResponse.refusalReason property defined at extension + * adyenServices. + */ + private String refusalReason; + /** + * Generated property for AdyenPaymentResponse.md property defined at extension + * adyenServices. + */ + private String md; + /** + * Generated property for AdyenPaymentResponse.paRequest property defined at extension + * adyenServices. + */ + private String paRequest; + /** + * Generated property for AdyenPaymentResponse.resultCode property defined at extension + * adyenServices. + */ + private ResultCode resultCode; + /** + * Generated property for AdyenPaymentResponse.fraudResult property defined at extension + * adyenServices. + */ + private List fraudResult; + /** + * Generated property for AdyenPaymentResponse.issuerUrl property defined at extension + * adyenServices. + */ + private String issuerUrl; + /** + * Generated property for AdyenPaymentResponse.additionalData property defined at extension + * adyenServices. + */ + private Map additionalData; + /** + * Generated property for AdyenPaymentResponse.dccAmount property defined at extension + * adyenServices. + */ + private AmountData dccAmount; + /** + * Generated property for AdyenPaymentResponse.dccSignature property defined at extension + * adyenServices. + */ + private String dccSignature; + + private String status; + private String errorCode; + private String message; + private ErrorType errorType; + + public AdyenPaymentResponse() + { + // default constructor + } + + + public void setPspReference(final String pspReference) + { + this.pspReference = pspReference; + } + + + public String getPspReference() + { + return pspReference; + } + + + public void setAuthCode(final String authCode) + { + this.authCode = authCode; + } + + + public String getAuthCode() + { + return authCode; + } + + + public void setRefusalReason(final String refusalReason) + { + this.refusalReason = refusalReason; + } + + + public String getRefusalReason() + { + return refusalReason; + } + + + public void setMd(final String md) + { + this.md = md; + } + + + public String getMd() + { + return md; + } + + + public void setPaRequest(final String paRequest) + { + this.paRequest = paRequest; + } + + + public String getPaRequest() + { + return paRequest; + } + + /** + * @return the resultCode + */ + public ResultCode getResultCode() + { + return resultCode; + } + + /** + * @param resultCode + * the resultCode to set + */ + public void setResultCode(final ResultCode resultCode) + { + this.resultCode = resultCode; + } + + + public void setFraudResult(final List fraudResult) + { + this.fraudResult = fraudResult; + } + + + public List getFraudResult() + { + return fraudResult; + } + + + public void setIssuerUrl(final String issuerUrl) + { + this.issuerUrl = issuerUrl; + } + + + public String getIssuerUrl() + { + return issuerUrl; + } + + + public void setAdditionalData(final Map additionalData) + { + this.additionalData = additionalData; + } + + + public Map getAdditionalData() + { + return additionalData; + } + + + public void setDccAmount(final AmountData dccAmount) + { + this.dccAmount = dccAmount; + } + + + public AmountData getDccAmount() + { + return dccAmount; + } + + + public void setDccSignature(final String dccSignature) + { + this.dccSignature = dccSignature; + } + + + public String getDccSignature() + { + return dccSignature; + } + + + /** + * @return the status + */ + public String getStatus() + { + return status; + } + + + /** + * @param status + * the status to set + */ + public void setStatus(final String status) + { + this.status = status; + } + + + /** + * @return the errorCode + */ + public String getErrorCode() + { + return errorCode; + } + + + /** + * @param errorCode + * the errorCode to set + */ + public void setErrorCode(final String errorCode) + { + this.errorCode = errorCode; + } + + + /** + * @return the message + */ + public String getMessage() + { + return message; + } + + + /** + * @param message + * the message to set + */ + public void setMessage(final String message) + { + this.message = message; + } + + + /** + * @return the errorType + */ + public ErrorType getErrorType() + { + return errorType; + } + + + /** + * @param errorType + * the errorType to set + */ + public void setErrorType(final ErrorType errorType) + { + this.errorType = errorType; + } +} \ No newline at end of file diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenAPIException.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenAPIException.java new file mode 100644 index 000000000..917ee99c1 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenAPIException.java @@ -0,0 +1,16 @@ +/** + * + */ +package com.adyen.services.integration.exception; + +/** + * @author delli + * + */ +public class AdyenAPIException extends RuntimeException +{ + public AdyenAPIException(final String message) + { + super(message); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenIs3DSecurityPaymentException.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenIs3DSecurityPaymentException.java new file mode 100644 index 000000000..ae8d0b43d --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/exception/AdyenIs3DSecurityPaymentException.java @@ -0,0 +1,43 @@ +/** + * + */ +package com.adyen.services.integration.exception; + +import com.adyen.services.integration.data.response.AdyenPaymentResponse; + + +/** + * @author delli + * + */ +public class AdyenIs3DSecurityPaymentException extends RuntimeException +{ + AdyenPaymentResponse paymentResponse; + + /** + * @return the paymentResponse + */ + public AdyenPaymentResponse getPaymentResponse() + { + return paymentResponse; + } + + /** + * @param paymentResponse + * the paymentResponse to set + */ + public void setPaymentResponse(final AdyenPaymentResponse paymentResponse) + { + this.paymentResponse = paymentResponse; + } + + /** + * @param paymentResponse + */ + public AdyenIs3DSecurityPaymentException(final AdyenPaymentResponse paymentResponse) + { + super(); + this.paymentResponse = paymentResponse; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/impl/DefaultAdyenService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/impl/DefaultAdyenService.java new file mode 100644 index 000000000..dce8e7f73 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/integration/impl/DefaultAdyenService.java @@ -0,0 +1,741 @@ +/** + * + */ +package com.adyen.services.integration.impl; + +import de.hybris.platform.cms2.model.site.CMSSiteModel; +import de.hybris.platform.cms2.servicelayer.services.CMSSiteService; +import de.hybris.platform.commerceservices.strategies.GenerateMerchantTransactionCodeStrategy; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.order.payment.PaymentInfoModel; +import de.hybris.platform.core.model.user.AddressModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.order.CartService; +import de.hybris.platform.payment.dto.TransactionStatus; +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.servicelayer.config.ConfigurationService; +import de.hybris.platform.servicelayer.i18n.CommonI18NService; +import de.hybris.platform.servicelayer.model.ModelService; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.zip.GZIPOutputStream; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.apache.log4j.Logger; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.ObjectWriter; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; + +import com.adyen.services.impl.DefaultAdyenPaymentService; +import com.adyen.services.integration.AdyenService; +import com.adyen.services.integration.data.PaymentMethods; +import com.adyen.services.integration.data.ResultCode; +import com.adyen.services.integration.data.request.AdyenListRecurringDetailsRequest; +import com.adyen.services.integration.data.request.AdyenModificationRequest; +import com.adyen.services.integration.data.request.AdyenPaymentRequest; +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; +import com.adyen.services.integration.data.response.AdyenModificationResponse; +import com.adyen.services.integration.data.response.AdyenPaymentResponse; +import com.adyen.services.integration.exception.AdyenIs3DSecurityPaymentException; + + +/** + * @author Kenneth Zhou + * + */ +public class DefaultAdyenService implements AdyenService +{ + private static final Logger LOG = Logger.getLogger(DefaultAdyenPaymentService.class); + private ObjectMapper objectMapper; + private ConfigurationService configurationService; + private GenerateMerchantTransactionCodeStrategy generateMerchantTransactionCodeStrategy; + private ModelService modelService; + private CommonI18NService commonI18NService; + private CartService cartService; + private CMSSiteService cmsSiteService; + + /* + * (non-Javadoc) + * + * @see com.adyen.services.integration.AdyenPaymentService#requestRecurringPaymentDetails(com.adyen.services.data. + * integration .request.AdyenListRecurringDetailsRequest) + */ + @Override + public AdyenListRecurringDetailsResponse requestRecurringPaymentDetails(final AdyenListRecurringDetailsRequest request) + { + final String requestUrl = configurationService.getConfiguration() + .getString("integration.adyen.requestRecurringPaymentDetails.url"); + + try + { + + + final HttpPost httpRequest = new HttpPost(requestUrl); + final ObjectWriter ow = getObjectMapper().writer(); + getObjectMapper().setSerializationInclusion(Inclusion.NON_NULL); + final String json = ow.writeValueAsString(request); + LOG.info("Sending Recurring Request:" + json); + httpRequest.setHeader("Content-Type", "application/json"); + httpRequest.setEntity(new StringEntity(json, "UTF-8")); + final HttpResponse httpResponse = callAdyenAPI(httpRequest, cmsSiteService.getCurrentSite()); + final String recurringResponse = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + LOG.info("Receiving Recurring Response:" + recurringResponse); + getObjectMapper().configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + return getObjectMapper().readValue(recurringResponse, AdyenListRecurringDetailsResponse.class); + + } + catch (final JsonParseException e) + { + LOG.error(e); + return null; + } + catch (final JsonMappingException e) + { + LOG.error(e); + return null; + } + catch (final IOException e) + { + LOG.error(e); + return null; + } + } + + @Override + public AdyenPaymentTransactionEntryModel authorise(final PaymentTransactionModel transaction, + final AdyenPaymentRequest request, final boolean is3DSecure) + { + final String key = (is3DSecure) ? "integration.adyen.authorise.3d.url" : "integration.adyen.authorise.url"; + final String requestUrl = configurationService.getConfiguration().getString(key); + + try + { + final HttpPost httpRequest = new HttpPost(requestUrl); + final ObjectWriter ow = getObjectMapper().writer(); + //getObjectMapper().configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); + final String json = ow.writeValueAsString(request); + LOG.info("Sending Authorise Request:" + json); + httpRequest.setHeader("Content-Type", "application/json"); + httpRequest.setEntity(new StringEntity(json, "UTF-8")); + final HttpResponse httpResponse = callAdyenAPI(httpRequest, cmsSiteService.getCurrentSite()); + final String response = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + LOG.info("Receiving Authorise Response:" + response); + final AdyenPaymentResponse paymentResponse = getObjectMapper().readValue(response, AdyenPaymentResponse.class); + + final AdyenPaymentTransactionEntryModel entry = (AdyenPaymentTransactionEntryModel) this.modelService + .create(AdyenPaymentTransactionEntryModel.class); + + + entry.setTime(new Date()); + entry.setPaymentTransaction(transaction); + entry.setRequestId(paymentResponse.getPspReference()); + + if (httpResponse.getStatusLine().getStatusCode() != 200) + { + final String faultString = paymentResponse.getErrorType() + " " + paymentResponse.getErrorCode() + " " + + paymentResponse.getMessage(); + LOG.error(faultString); + entry.setAdyenErrorCode(paymentResponse.getErrorCode()); + entry.setAdyenMessage(paymentResponse.getMessage()); + entry.setTransactionStatus("ERROR"); + return entry; + } + else + { + transaction.setRequestId(paymentResponse.getPspReference()); + transaction.setPaymentProvider("Adyen"); + this.modelService.save(transaction); + entry.setCode(getNewEntryCode(transaction)); + if (ResultCode.RedirectShopper.name().equals(paymentResponse.getResultCode().name())) + { + throw new AdyenIs3DSecurityPaymentException(paymentResponse); + } + + entry.setTransactionStatus((paymentResponse.getResultCode() != null) ? paymentResponse.getResultCode().name() : ""); + entry.setTransactionStatusDetails(paymentResponse.getRefusalReason()); + entry.setAdyenAuthCode(paymentResponse.getAuthCode()); + + final CartModel cartModel = getCartService().getSessionCart(); + if (cartModel != null) + { + entry.setCurrency(cartModel.getCurrency()); + entry.setAmount(new BigDecimal(cartModel.getTotalPrice().doubleValue())); + } + if ((ResultCode.Authorised.name().equals(entry.getTransactionStatus())) + || (ResultCode.Received.name().equals(entry.getTransactionStatus()))) + { + transaction.setOrder(cartModel); + this.modelService.save(transaction); + if (is3DSecure) + { + entry.setType(PaymentTransactionType.AUTHORIZATION_REQUESTED_3DSECURE); + } + else + { + entry.setType(PaymentTransactionType.AUTHORIZATION_REQUESTED); + } + } + else if (ResultCode.Refused.name().equals(entry.getTransactionStatus()) + && !"Refused".equals(paymentResponse.getRefusalReason())) + { + if (StringUtils.isNotEmpty(paymentResponse.getRefusalReason())) + { + entry.setAdyenMessage(paymentResponse.getRefusalReason()); + } + return entry; + } + + String boletoPDFUrl = null; + if (paymentResponse.getAdditionalData() != null + && paymentResponse.getAdditionalData().get("boletobancario.url") != null) + { + boletoPDFUrl = paymentResponse.getAdditionalData().get("boletobancario.url"); + entry.setAdyenBoloToPDFUrl(boletoPDFUrl); + entry.setAdyenBoloToPDFUrl(paymentResponse.getAdditionalData().get("boletobancario.url")); + } + + final PaymentInfoModel paymentInfo = cartModel.getPaymentInfo(); + { + final AdyenPaymentInfoModel adyenPaymentInfoModel = (AdyenPaymentInfoModel) paymentInfo; + adyenPaymentInfoModel.setAuthCode(paymentResponse.getAuthCode()); + adyenPaymentInfoModel.setAdyenBoletoPDFUrl(boletoPDFUrl); + modelService.save(adyenPaymentInfoModel); + this.modelService.refresh(adyenPaymentInfoModel); + } + } + this.modelService.save(entry); + this.modelService.refresh(transaction); + return entry; + } + catch (final IOException e) + { + e.printStackTrace(); + } + finally + { + //TODO remove security code from session + } + return null; + } + + @Override + public AdyenPaymentTransactionEntryModel cancelOrRefund(final PaymentTransactionModel transaction, + final AdyenModificationRequest request) + { + final String requestUrl = (request.getModificationAmount() == null) + ? configurationService.getConfiguration().getString("integration.adyen.cancel.or.refund.url") + : configurationService.getConfiguration().getString("integration.adyen.refund.url"); + try + { + final HttpResponse httpResponse = callAdyenModificationAPI(request, requestUrl, + (CMSSiteModel) transaction.getOrder().getSite()); + final String response = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + + final String api = getApiName(requestUrl); + LOG.info(String.format("%s payment Response: %s", api, response)); + + final AdyenModificationResponse modiResponse = getObjectMapper().readValue(response, AdyenModificationResponse.class); + + if (AdyenModificationResponse.ADYEN_MODIFICATION_CANCEL_OR_REFUND_RESPONSE.equals(modiResponse.getResponse())) + { + return createCancelOrRefundTransactionEntry(transaction, modiResponse, + PaymentTransactionType.CANCEL_OR_REFUND_REQUESTED, + new BigDecimal(transaction.getOrder().getTotalPrice().doubleValue())); + } + else if (AdyenModificationResponse.ADYEN_MODIFICATION_REFUND_RESPONSE.equals(modiResponse.getResponse())) + { + return createCancelOrRefundTransactionEntry(transaction, modiResponse, PaymentTransactionType.REFUND_REQUESTED, + new BigDecimal(request.getModificationAmount().getValue().doubleValue() / 100)); + } + else if (AdyenModificationResponse.ADYEN_MODIFICATION_CANCEL_RESPONSE.equals(modiResponse.getResponse())) + { + //todo + } + else + { + LOG.info(String.format("cancel order %s failed , response: %s", transaction.getOrder().getCode(), + modiResponse.getResponse())); + } + } + catch (final IOException e) + { + e.printStackTrace(); + LOG.error(e.getMessage()); + } + return null; + } + + /* + * (non-Javadoc) + * + * @see com.adyen.services.integration.AdyenService#capturePayment(de.hybris.platform.payment.model. + * PaymentTransactionModel , com.adyen.services.integration.data.request.AdyenModificationRequest) + */ + @Override + public AdyenModificationResponse capturePayment(final AdyenModificationRequest request, final CMSSiteModel site) + { + final String requestUrl = configurationService.getConfiguration().getString("integration.adyen.capture.url"); + try + { + final HttpResponse httpResponse = callAdyenModificationAPI(request, requestUrl, site); + final String response = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + LOG.info("Capture payment Response:" + response); + final AdyenModificationResponse modiResponse = getObjectMapper().readValue(response, AdyenModificationResponse.class); + return modiResponse; + } + catch (final IOException e) + { + e.printStackTrace(); + LOG.error(e.getMessage()); + } + return null; + } + + /** + * @param requestUrl + * @param response + */ + private String getApiName(final String requestUrl) + { + if (StringUtils.lastIndexOf(requestUrl, "/") != -1) + { + final String api = requestUrl.substring(StringUtils.lastIndexOf(requestUrl, "/") + 1, requestUrl.length()); + return api; + } + return null; + } + + /** + * @param transaction + * @param modiResponse + * @return + */ + public AdyenPaymentTransactionEntryModel createCancelOrRefundTransactionEntry(final PaymentTransactionModel transaction, + final AdyenModificationResponse modiResponse, final PaymentTransactionType type, final BigDecimal amount) + { + final AdyenPaymentTransactionEntryModel entry = (AdyenPaymentTransactionEntryModel) this.modelService + .create(AdyenPaymentTransactionEntryModel.class); + entry.setTime(new Date()); + entry.setRequestId(modiResponse.getPspReference()); + entry.setType(type); + entry.setTransactionStatus(TransactionStatus.ACCEPTED.name()); + entry.setTransactionStatusDetails(TransactionStatusDetails.SUCCESFULL.name()); + entry.setCurrency(transaction.getOrder().getCurrency()); + entry.setAmount(amount); + entry.setCode(getNewEntryCode(transaction)); + entry.setPaymentTransaction(transaction); + this.modelService.save(entry); + this.modelService.refresh(transaction); + return entry; + } + + @Override + public PaymentMethods directory() + { + try + { + final CMSSiteModel site = getCmsSiteService().getCurrentSite(); + final String apiUrl = getConfigurationService().getConfiguration().getString("integration.adyen.hpp.directory.url"); + final String hmacKey = site.getAdyenHmacKey(); + + // Generate date + final Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE, 1); + final Date sessionDate = calendar.getTime(); // current date + 1 day + + // Define variables + final CartModel cart = getCartService().getSessionCart(); + final String merchantReference = cart.getCode(); + final String paymentAmount = new BigDecimal(100).multiply(new BigDecimal(cart.getTotalPrice().toString())).intValue() + + ""; + final String currencyCode = cart.getCurrency().getIsocode(); + final String skinCode = site.getAdyenSkinCode(); + final String merchantAccount = site.getAdyenMerchantAccount(); + final String sessionValidity = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(sessionDate); + + final String countryCode = getCountryCode(); + + // Calculate merchant signature + final String signingString = paymentAmount + currencyCode + merchantReference + skinCode + merchantAccount + + sessionValidity; + + String merchantSig; + merchantSig = calculateHMAC(hmacKey, signingString); + + // Set HTTP Post variables + final List postParameters = new ArrayList(); + Collections.addAll(postParameters, new BasicNameValuePair("merchantReference", merchantReference), + new BasicNameValuePair("paymentAmount", paymentAmount), new BasicNameValuePair("currencyCode", currencyCode), + new BasicNameValuePair("skinCode", skinCode), new BasicNameValuePair("merchantAccount", merchantAccount), + new BasicNameValuePair("sessionValidity", sessionValidity), new BasicNameValuePair("countryCode", countryCode), + new BasicNameValuePair("merchantSig", merchantSig)); + + /** + * Create HTTP Client (using Apache HttpComponents library) and send the request with the specified variables. + */ + final HttpPost httpPost = new HttpPost(apiUrl); + httpPost.setEntity(new UrlEncodedFormEntity(postParameters)); + + final HttpClient client = new DefaultHttpClient(); + LOG.info("request hpp payment methods:\n" + StringUtils.join(postParameters, "\n")); + final HttpResponse httpResponse = client.execute(httpPost); + final String result = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + LOG.info("hpp payment methods:" + result); + final ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.readValue(result, PaymentMethods.class); + } + catch (final Exception e) + { + LOG.error(e.getMessage(), e); + } + return null; + } + + /** + * Computes the Base64 encoded signature using the HMAC algorithm with the SHA-1 hashing function. + */ + @Override + public String calculateHMAC(final String hmacKey, final String signingString) + { + LOG.info("HMAC Source String : " + signingString); + final SecretKeySpec keySpec = new SecretKeySpec(hmacKey.getBytes(), "HmacSHA1"); + Mac mac; + try + { + mac = Mac.getInstance("HmacSHA1"); + mac.init(keySpec); + + final byte[] result = mac.doFinal(signingString.getBytes("UTF-8")); + LOG.info("HMAC Target String : " + Base64.encodeBase64String(result)); + return Base64.encodeBase64String(result); + } + catch (final NoSuchAlgorithmException e) + { + e.printStackTrace(); + } + catch (final InvalidKeyException e) + { + e.printStackTrace(); + } + catch (final IllegalStateException e) + { + e.printStackTrace(); + } + catch (final UnsupportedEncodingException e) + { + e.printStackTrace(); + } + return ""; + } + + @Override + public String compressString(final String input) + { + final ByteArrayOutputStream output = new ByteArrayOutputStream(); + GZIPOutputStream gzip; + try + { + gzip = new GZIPOutputStream(output); + gzip.write(input.getBytes("UTF-8")); + gzip.close(); + output.close(); + return Base64.encodeBase64String(output.toByteArray()); + } + catch (final IOException e) + { + e.printStackTrace(); + } + return ""; + } + + /** + * @param request + * @param requestUrl + * @return + * @throws IOException + * @throws JsonGenerationException + * @throws JsonMappingException + * @throws UnsupportedEncodingException + * @throws ClientProtocolException + */ + private HttpResponse callAdyenModificationAPI(final AdyenModificationRequest request, final String requestUrl, + final CMSSiteModel site) throws IOException, JsonGenerationException, JsonMappingException, UnsupportedEncodingException, + ClientProtocolException + { + final HttpPost httpRequest = new HttpPost(requestUrl); + final ObjectWriter ow = getObjectMapper().writer(); + final String json = ow.writeValueAsString(request); + final String api = getApiName(requestUrl); + LOG.info(String.format("Sending %s Request: %s", api, json)); + httpRequest.setHeader("Content-Type", "application/json"); + httpRequest.setEntity(new StringEntity(json, "UTF-8")); + return callAdyenAPI(httpRequest, site); + } + + + private HttpResponse callAdyenAPI(final HttpPost httpRequest, final CMSSiteModel site) + throws ClientProtocolException, IOException + { + final CredentialsProvider provider = new BasicCredentialsProvider(); + final UsernamePasswordCredentials adyenUsernamePasswordCredentials = new UsernamePasswordCredentials( + site.getAdyenAPIAccount(), site.getAdyenAPIPassword()); + provider.setCredentials(AuthScope.ANY, adyenUsernamePasswordCredentials); + + final DefaultHttpClient client = new DefaultHttpClient(); + client.setCredentialsProvider(provider); + return client.execute(httpRequest); + } + + protected String getNewEntryCode(final PaymentTransactionModel transaction) + { + if (transaction.getEntries() == null) + { + return transaction.getCode() + "-1"; + } + return transaction.getCode() + "-" + (transaction.getEntries().size() + 1); + } + /* ADY-115 start */ + + + @Override + public String getCountryCode() + { + final CustomerModel user = (CustomerModel) cartService.getSessionCart().getUser(); + final String isocode = getCountryCode(user.getDefaultPaymentAddress()); + if (StringUtils.isNotEmpty(isocode)) + { + return isocode; + } + else + { + return getCountryCode(cartService.getSessionCart().getDeliveryAddress()); + } + } + + private String getCountryCode(final AddressModel addr) + { + if (addr != null && addr.getCountry() != null) + { + return addr.getCountry().getIsocode(); + } + return null; + } + + @Override + public LinkedHashMap getBillingAddressData() + { + final LinkedHashMap addrData = new LinkedHashMap(); + final CartModel cart = cartService.getSessionCart(); + final AddressModel addr = cart.getPaymentInfo().getBillingAddress(); + addrData.put("billingAddressStreet", addr.getStreetname()); + addrData.put("billingAddressHouseNumberOrName", addr.getStreetnumber()); + addrData.put("billingAddressCity", addr.getTown()); + addrData.put("billingAddressPostalCode", addr.getPostalcode()); + addrData.put("billingAddressStateOrProvince", ""); + addrData.put("billingAddressCountry", addr.getCountry().getIsocode()); + return addrData; + } + + @Override + public LinkedHashMap getDeliveryAddrData() + { + final LinkedHashMap addrData = new LinkedHashMap(); + final CartModel cart = cartService.getSessionCart(); + final AddressModel addr = cart.getDeliveryAddress(); + addrData.put("deliveryAddressStreet", addr.getStreetname()); + addrData.put("deliveryAddressHouseNumberOrName", addr.getStreetnumber()); + addrData.put("deliveryAddressCity", addr.getTown()); + addrData.put("deliveryAddressPostalCode", addr.getPostalcode()); + addrData.put("deliveryAddressStateOrProvince", ""); + addrData.put("deliveryAddressCountry", addr.getCountry().getIsocode()); + return addrData; + } + + /* ADY-115 end */ + + /* + * (non-Javadoc) + * + * @see com.adyen.services.integration.AdyenService#buildOpenInvoiceDataSig(java.lang.String, + * java.util.LinkedHashMap) + */ + @Override + public String buildOpenInvoiceDataSig(final String merchantSig, final LinkedHashMap openInvoiceData, + final String hmacKey) + { + String keyStr = "merchantSig"; + String valueStr = merchantSig; + for (final String key : openInvoiceData.keySet()) + { + keyStr = keyStr + ":" + key; + valueStr = valueStr + ":" + openInvoiceData.get(key); + } + + return calculateHMAC(hmacKey, keyStr + "|" + valueStr); + } + + /** + * @return the objectMapper + */ + public ObjectMapper getObjectMapper() + { + return objectMapper; + } + + + + /** + * @param objectMapper + * the objectMapper to set + */ + public void setObjectMapper(final ObjectMapper objectMapper) + { + this.objectMapper = objectMapper; + } + + /** + * @return the configurationService + */ + public ConfigurationService getConfigurationService() + { + return configurationService; + } + + /** + * @param configurationService + * the configurationService to set + */ + public void setConfigurationService(final ConfigurationService configurationService) + { + this.configurationService = configurationService; + } + + /** + * @return the generateMerchantTransactionCodeStrategy + */ + public GenerateMerchantTransactionCodeStrategy getGenerateMerchantTransactionCodeStrategy() + { + return generateMerchantTransactionCodeStrategy; + } + + /** + * @param generateMerchantTransactionCodeStrategy + * the generateMerchantTransactionCodeStrategy to set + */ + public void setGenerateMerchantTransactionCodeStrategy( + final GenerateMerchantTransactionCodeStrategy generateMerchantTransactionCodeStrategy) + { + this.generateMerchantTransactionCodeStrategy = generateMerchantTransactionCodeStrategy; + } + + /** + * @return the modelService + */ + public ModelService getModelService() + { + return modelService; + } + + /** + * @param modelService + * the modelService to set + */ + public void setModelService(final ModelService modelService) + { + this.modelService = modelService; + } + + /** + * @return the commonI18NService + */ + public CommonI18NService getCommonI18NService() + { + return commonI18NService; + } + + /** + * @param commonI18NService + * the commonI18NService to set + */ + public void setCommonI18NService(final CommonI18NService commonI18NService) + { + this.commonI18NService = commonI18NService; + } + + /** + * @return the cartService + */ + public CartService getCartService() + { + return cartService; + } + + /** + * @param cartService + * the cartService to set + */ + public void setCartService(final CartService cartService) + { + this.cartService = cartService; + } + + /** + * @return the cmsSiteService + */ + public CMSSiteService getCmsSiteService() + { + return cmsSiteService; + } + + /** + * @param cmsSiteService + * the cmsSiteService to set + */ + public void setCmsSiteService(final CMSSiteService cmsSiteService) + { + this.cmsSiteService = cmsSiteService; + } + + + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenPaymentMethod.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenPaymentMethod.java new file mode 100644 index 000000000..1dab79ff1 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenPaymentMethod.java @@ -0,0 +1,25 @@ +package com.adyen.services.jalo; + +import de.hybris.platform.jalo.Item; +import de.hybris.platform.jalo.JaloBusinessException; +import de.hybris.platform.jalo.SessionContext; +import de.hybris.platform.jalo.type.ComposedType; +import org.apache.log4j.Logger; + +public class AdyenPaymentMethod extends GeneratedAdyenPaymentMethod +{ + @SuppressWarnings("unused") + private final static Logger LOG = Logger.getLogger( AdyenPaymentMethod.class.getName() ); + + @Override + protected Item createItem(final SessionContext ctx, final ComposedType type, final ItemAttributeMap allAttributes) throws JaloBusinessException + { + // business code placed here will be executed before the item is created + // then create the item + final Item item = super.createItem( ctx, type, allAttributes ); + // business code placed here will be executed after the item was created + // and return the item + return item; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenServicesManager.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenServicesManager.java new file mode 100644 index 000000000..d729f047a --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/jalo/AdyenServicesManager.java @@ -0,0 +1,132 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.jalo; + +import de.hybris.platform.core.Registry; +import de.hybris.platform.util.JspContext; + +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.adyen.services.constants.AdyenServicesConstants; + + + +/** + * This is the extension manager of the AdyenServices extension. + */ +public class AdyenServicesManager extends GeneratedAdyenServicesManager +{ + /** Edit the local|project.properties to change logging behavior (properties 'log4j.*'). */ + private static final Logger LOG = Logger.getLogger(AdyenServicesManager.class.getName()); + + /* + * Some important tips for development: + * + * Do NEVER use the default constructor of manager's or items. => If you want to do something whenever the manger is + * created use the init() or destroy() methods described below + * + * Do NEVER use STATIC fields in your manager or items! => If you want to cache anything in a "static" way, use an + * instance variable in your manager, the manager is created only once in the lifetime of a "deployment" or tenant. + */ + + + /** + * Get the valid instance of this manager. + * + * @return the current instance of this manager + */ + public static AdyenServicesManager getInstance() + { + return (AdyenServicesManager) Registry.getCurrentTenant().getJaloConnection().getExtensionManager().getExtension( + AdyenServicesConstants.EXTENSIONNAME); + } + + + /** + * Never call the constructor of any manager directly, call getInstance() You can place your business logic here - + * like registering a jalo session listener. Each manager is created once for each tenant. + */ + public AdyenServicesManager() // NOPMD + { + if (LOG.isDebugEnabled()) + { + LOG.debug("constructor of AdyenServicesManager called."); + } + } + + /** + * Use this method to do some basic work only ONCE in the lifetime of a tenant resp. "deployment". This method is + * called after manager creation (for example within startup of a tenant). Note that if you have more than one tenant + * you have a manager instance for each tenant. + */ + @Override + public void init() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("init() of AdyenServicesManager called. " + getTenant().getTenantID()); + } + } + + /** + * Use this method as a callback when the manager instance is being destroyed (this happens before system + * initialization, at redeployment or if you shutdown your VM). Note that if you have more than one tenant you have a + * manager instance for each tenant. + */ + @Override + public void destroy() + { + if (LOG.isDebugEnabled()) + { + LOG.debug("destroy() of AdyenServicesManager called, current tenant: " + getTenant().getTenantID()); + } + } + + /** + * Implement this method to create initial objects. This method will be called by system creator during + * initialization and system update. Be sure that this method can be called repeatedly. + * + * An example usage of this method is to create required cronjobs or modifying the type system (setting e.g some + * default values) + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createEssentialData(final Map params, final JspContext jspc) + { + // implement here code creating essential data + } + + /** + * Implement this method to create data that is used in your project. This method will be called during the system + * initialization. + * + * An example use is to import initial data like currencies or languages for your project from an csv file. + * + * @param params + * the parameters provided by user for creation of objects for the extension + * @param jspc + * the jsp context; you can use it to write progress information to the jsp page during creation + */ + @Override + public void createProjectData(final Map params, final JspContext jspc) + { + // implement here code creating project data + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/listener/AdyenNotificationListener.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/listener/AdyenNotificationListener.java new file mode 100644 index 000000000..4cf0e15e8 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/listener/AdyenNotificationListener.java @@ -0,0 +1,74 @@ +/** + * + */ +package com.adyen.services.listener; + +import de.hybris.platform.servicelayer.event.impl.AbstractEventListener; + +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.adyen.services.event.AdyenNotificationEvent; +import com.adyen.services.strategy.AdyenNotificationStrategy; + + +/** + * @author delli + * + */ +public class AdyenNotificationListener extends AbstractEventListener +{ + private static final Logger LOG = Logger.getLogger(AdyenNotificationListener.class); + private Map notificationHandlerMap; + + private AdyenNotificationStrategy defaultHandler; + + @Override + protected void onEvent(final AdyenNotificationEvent event) + { + final String eventCode = getDefaultHandler().getEventCode(event.getNotificationRequest()); + AdyenNotificationStrategy handler = (AdyenNotificationStrategy) notificationHandlerMap.get(eventCode); + if (handler == null) + { + handler = defaultHandler; + } + LOG.info(String.format("Listened %s event ,it'll be handled by %s ", eventCode, handler.getClass().getSimpleName())); + handler.handleNotification(event.getNotificationRequest()); + } + + /** + * @return the notificationHandlerMap + */ + public Map getNotificationHandlerMap() + { + return notificationHandlerMap; + } + + /** + * @param notificationHandlerMap + * the notificationHandlerMap to set + */ + public void setNotificationHandlerMap(final Map notificationHandlerMap) + { + this.notificationHandlerMap = notificationHandlerMap; + } + + /** + * @return the defaultHandler + */ + public AdyenNotificationStrategy getDefaultHandler() + { + return defaultHandler; + } + + /** + * @param defaultHandler + * the defaultHandler to set + */ + public void setDefaultHandler(final AdyenNotificationStrategy defaultHandler) + { + this.defaultHandler = defaultHandler; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEvent.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEvent.java new file mode 100644 index 000000000..afde57d38 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEvent.java @@ -0,0 +1,55 @@ +/** + * + */ +package com.adyen.services.order.events; + +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.servicelayer.event.events.AbstractEvent; + +import java.io.Serializable; + + +/** + * @author Kenneth Zhou + * + */ +public class SubmitAdyenOrderEvent extends AbstractEvent { + private OrderModel order; + + public SubmitAdyenOrderEvent() + { + super(); + } + + /** + * Attention: for backward compatibility this constructor invokes + * + *
    +	 * setOrder(source)
    +	 * 
    + * + * in case the source object is a OrderModel! + */ + public SubmitAdyenOrderEvent(final Serializable source) + { + super(source); + + // compatibility! + if (source instanceof OrderModel) + { + setOrder((OrderModel) source); + } + } + + + public void setOrder(final OrderModel order) + { + this.order = order; + } + + + public OrderModel getOrder() + { + return order; + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEventListener.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEventListener.java new file mode 100644 index 000000000..bfe330773 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/events/SubmitAdyenOrderEventListener.java @@ -0,0 +1,189 @@ +/** + * + */ +package com.adyen.services.order.events; + +import de.hybris.platform.basecommerce.model.site.BaseSiteModel; +import de.hybris.platform.commerceservices.enums.SiteChannel; +import de.hybris.platform.commerceservices.event.AbstractSiteEventListener; +import de.hybris.platform.core.enums.OrderStatus; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.orderprocessing.model.OrderProcessModel; +import de.hybris.platform.payment.dto.TransactionStatus; +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.processengine.BusinessProcessService; +import de.hybris.platform.servicelayer.model.ModelService; +import de.hybris.platform.servicelayer.util.ServicesUtil; +import de.hybris.platform.store.BaseStoreModel; +import de.hybris.platform.store.services.BaseStoreService; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Required; + +/** + * @author Kenneth Zhou + * + */ +public class SubmitAdyenOrderEventListener extends AbstractSiteEventListener +{ + private static final Logger LOG = Logger.getLogger(SubmitAdyenOrderEventListener.class); + + private BusinessProcessService businessProcessService; + private BaseStoreService baseStoreService; + private ModelService modelService; + + /** + * @return the businessProcessService + */ + protected BusinessProcessService getBusinessProcessService() + { + return businessProcessService; + } + + /** + * @param businessProcessService + * the businessProcessService to set + */ + @Required + public void setBusinessProcessService(final BusinessProcessService businessProcessService) + { + this.businessProcessService = businessProcessService; + } + + /** + * @return the baseStoreService + */ + protected BaseStoreService getBaseStoreService() + { + return baseStoreService; + } + + /** + * @param baseStoreService + * the baseStoreService to set + */ + @Required + public void setBaseStoreService(final BaseStoreService baseStoreService) + { + this.baseStoreService = baseStoreService; + } + + /** + * @return the modelService + */ + protected ModelService getModelService() + { + return modelService; + } + + /** + * @param modelService + * the modelService to set + */ + @Required + public void setModelService(final ModelService modelService) + { + this.modelService = modelService; + } + + @Override + protected void onSiteEvent(final SubmitAdyenOrderEvent event) + { + final OrderModel order = event.getOrder(); + LOG.info("Order " + "["+order.getCode()+"]" + "Submitted."); + ServicesUtil.validateParameterNotNullStandardMessage("event.order", order); + + // Try the store set on the Order first, then fallback to the session + BaseStoreModel store = order.getStore(); + if (store == null) + { + store = getBaseStoreService().getCurrentBaseStore(); + } + + if (store == null) + { + LOG.warn("Unable to start fulfilment process for order [" + order.getCode() + + "]. Store not set on Order and no current base store defined in session."); + } + else + { + boolean isOrderAuthorised = false; + boolean isPaymentPending = false; + for (final PaymentTransactionModel transaction : order.getPaymentTransactions()) + { + for (final PaymentTransactionEntryModel entry : transaction.getEntries()) + { + if (entry.getType().equals(PaymentTransactionType.AUTHORIZATION)) + { + if (TransactionStatus.ACCEPTED.name().equals(entry.getTransactionStatus()) + && TransactionStatusDetails.SUCCESFULL.name().equals(entry.getTransactionStatusDetails())) + { + isOrderAuthorised = true; + break; + } + if (TransactionStatus.ACCEPTED.name().equals(entry.getTransactionStatus()) + && "UNSUCCESSFULL".equals(entry.getTransactionStatusDetails())) + { + isOrderAuthorised = true; + break; + } + } + if (entry.getType().equals(PaymentTransactionType.HPP_RESULT)) + { + if ("PENDING".equals(entry.getTransactionStatus())) + { + isPaymentPending = true; + } + } + } + } + if (isOrderAuthorised) + { + final String fulfilmentProcessDefinitionName = store.getSubmitOrderProcessCode(); + if (fulfilmentProcessDefinitionName == null || fulfilmentProcessDefinitionName.isEmpty()) + { + LOG.warn("Unable to start fulfilment process for order [" + order.getCode() + "]. Store [" + store.getUid() + + "] has missing SubmitOrderProcessCode"); + } + else + { + final String processCode = fulfilmentProcessDefinitionName + "-" + order.getCode() + "-" + + System.currentTimeMillis(); + final OrderProcessModel businessProcessModel = getBusinessProcessService().createProcess(processCode, + fulfilmentProcessDefinitionName); + businessProcessModel.setOrder(order); + getModelService().save(businessProcessModel); + getBusinessProcessService().startProcess(businessProcessModel); + if (LOG.isInfoEnabled()) + { + LOG.info(String.format("Started the process %s", processCode)); + } + } + } + else + { + if (isPaymentPending) + { + LOG.info(String + .format("Order HPP Payment is PENDING, order process won't be initialized, change order status to PAYMENT_PENDING.")); + order.setStatus(OrderStatus.PAYMENT_PENDING); + getModelService().save(order); + getModelService().refresh(order); + } + } + } + } + + @Override + protected boolean shouldHandleEvent(final SubmitAdyenOrderEvent event) + { + final OrderModel order = event.getOrder(); + ServicesUtil.validateParameterNotNullStandardMessage("event.order", order); + final BaseSiteModel site = order.getSite(); + ServicesUtil.validateParameterNotNullStandardMessage("event.order.site", site); + return SiteChannel.B2C.equals(site.getChannel()); + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/order/strategies/impl/EventPublishingSubmitOrderStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/strategies/impl/EventPublishingSubmitOrderStrategy.java new file mode 100644 index 000000000..abb859274 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/order/strategies/impl/EventPublishingSubmitOrderStrategy.java @@ -0,0 +1,36 @@ +/** + * + */ +package com.adyen.services.order.strategies.impl; + +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.order.strategies.SubmitOrderStrategy; +import de.hybris.platform.servicelayer.event.EventService; + +import org.springframework.beans.factory.annotation.Required; + +import com.adyen.services.order.events.SubmitAdyenOrderEvent; + + +/** + * @author Kenneth Zhou + * + */ +public class EventPublishingSubmitOrderStrategy implements SubmitOrderStrategy +{ + + private EventService eventService; + + @Override + public void submitOrder(final OrderModel order) + { + eventService.publishEvent(new SubmitAdyenOrderEvent(order)); + } + + @Required + public void setEventService(final EventService eventService) + { + this.eventService = eventService; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/ordercancel/AdyenOrderCancelService.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/ordercancel/AdyenOrderCancelService.java new file mode 100644 index 000000000..911459f15 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/ordercancel/AdyenOrderCancelService.java @@ -0,0 +1,125 @@ +/** + * + */ +package com.adyen.services.ordercancel; + +import de.hybris.platform.basecommerce.constants.GeneratedBasecommerceConstants.Enumerations.OrderCancelEntryStatus; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.core.model.security.PrincipalModel; +import de.hybris.platform.order.CalculationService; +import de.hybris.platform.order.exceptions.CalculationException; +import de.hybris.platform.ordercancel.CancelDecision; +import de.hybris.platform.ordercancel.OrderCancelDenialStrategy; +import de.hybris.platform.ordercancel.OrderCancelException; +import de.hybris.platform.ordercancel.OrderCancelRequest; +import de.hybris.platform.ordercancel.impl.DefaultOrderCancelService; +import de.hybris.platform.ordercancel.model.OrderCancelConfigModel; +import de.hybris.platform.ordercancel.model.OrderCancelRecordEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import com.adyen.services.AdyenPaymentService; + + +/** + * @author delli + * + */ +public class AdyenOrderCancelService extends DefaultOrderCancelService +{ + private AdyenPaymentService adyenPaymentService; + private CalculationService calculationService; + + @Override + public OrderCancelRecordEntryModel requestOrderCancel(final OrderCancelRequest orderCancelRequest, + final PrincipalModel requestor) throws OrderCancelException + { + final OrderCancelRecordEntryModel orderRequestRecord = super.requestOrderCancel(orderCancelRequest, requestor); + Double modificationAmount = null; + final OrderModel order = orderCancelRequest.getOrder(); + final Double originalPrice = order.getTotalPrice(); + try + { + if (OrderCancelEntryStatus.PARTIAL.equals(orderRequestRecord.getCancelResult().getCode())) + { + calculationService.recalculate(order); + final Double totalPrice = order.getTotalPrice(); + modificationAmount = new Double(originalPrice.doubleValue() - totalPrice.doubleValue()); + } + } + catch (final CalculationException e) + { + e.printStackTrace(); + } + final PaymentTransactionModel transaction = order.getPaymentTransactions().get(0); + getAdyenPaymentService().cancelOrRefund(transaction, order.getCode(), order.getCurrency(), modificationAmount); + return orderRequestRecord; + } + + /* + * (non-Javadoc) + * + * @see + * de.hybris.platform.ordercancel.impl.DefaultOrderCancelService#isCancelPossible(de.hybris.platform.core.model.order + * .OrderModel, de.hybris.platform.core.model.security.PrincipalModel, boolean, boolean) + */ + @Override + public CancelDecision isCancelPossible(final OrderModel order, final PrincipalModel requestor, final boolean partialCancel, + final boolean partialEntryCancel) + { + final OrderCancelConfigModel configuration = getConfiguration(); + final List reasons = new ArrayList(); + for (final Iterator iterator = getCancelDenialStrategies().iterator(); iterator.hasNext();) + { + final OrderCancelDenialStrategy ocas = (OrderCancelDenialStrategy) iterator.next(); + final de.hybris.platform.ordercancel.OrderCancelDenialReason result = ocas.getCancelDenialReason(configuration, order, + requestor, partialCancel, partialEntryCancel); + if (result != null) + { + reasons.add(result); + } + } + return super.isCancelPossible(order, requestor, partialCancel, partialEntryCancel); + } + + + + /** + * @return the adyenPaymentService + */ + public AdyenPaymentService getAdyenPaymentService() + { + return adyenPaymentService; + } + + + /** + * @param adyenPaymentService + * the adyenPaymentService to set + */ + public void setAdyenPaymentService(final AdyenPaymentService adyenPaymentService) + { + this.adyenPaymentService = adyenPaymentService; + } + + /** + * @return the calculationService + */ + public CalculationService getCalculationService() + { + return calculationService; + } + + /** + * @param calculationService + * the calculationService to set + */ + public void setCalculationService(final CalculationService calculationService) + { + this.calculationService = calculationService; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/AdyenNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/AdyenNotificationStrategy.java new file mode 100644 index 000000000..1ca23b08e --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/AdyenNotificationStrategy.java @@ -0,0 +1,25 @@ +/** + * + */ +package com.adyen.services.strategy; + +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public interface AdyenNotificationStrategy +{ + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request); + + String getEventCode(final AdyenNotificationRequest request); + + AdyenPaymentTransactionEntryModel createTransactionEntry(final AdyenNotificationRequest request); + + PaymentTransactionModel fetchTransaction(final AdyenNotificationRequest request); +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AbstractAdyenNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AbstractAdyenNotificationStrategy.java new file mode 100644 index 000000000..3d35d9720 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AbstractAdyenNotificationStrategy.java @@ -0,0 +1,297 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.payment.dto.TransactionStatus; +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.servicelayer.exceptions.ModelNotFoundException; +import de.hybris.platform.servicelayer.model.ModelService; +import de.hybris.platform.servicelayer.search.FlexibleSearchService; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; +import com.adyen.services.strategy.AdyenNotificationStrategy; + + +/** + * @author delli + * + */ +public class AbstractAdyenNotificationStrategy implements AdyenNotificationStrategy +{ + private ModelService modelService; + private FlexibleSearchService flexibleSearchService; + private Map eventCode2Type; + + private static final Logger LOG = Logger.getLogger(AbstractAdyenNotificationStrategy.class); + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + AdyenPaymentTransactionEntryModel entry = null; + if (!getEventCode2Type().containsKey(getEventCode(request))) + { + LOG.info("UNKOWN NOTIFICATION :" + getEventCode(request)); + } + try + { + final AdyenPaymentTransactionEntryModel entryExample = new AdyenPaymentTransactionEntryModel(); + entryExample.setRequestId(getPspReference(request)); + entryExample.setType(getType(request)); + if (!isExist(entryExample)) + { + entry = createTransactionEntry(request); + } + } + catch (final Exception e) + { + LOG.error("create transaction entry...", e); + } + return entry; + } + + @Override + public PaymentTransactionModel fetchTransaction(final AdyenNotificationRequest request) + { + final PaymentTransactionEntryModel entryExample = new PaymentTransactionEntryModel(); + entryExample.setRequestId(getPspReference(request)); + PaymentTransactionEntryModel entry = null; + final List entries = getFlexibleSearchService().getModelsByExample(entryExample); + if (CollectionUtils.isNotEmpty(entries)) + { + for (final PaymentTransactionEntryModel paymentTransactionEntry : entries) + { + if (StringUtils.isEmpty(paymentTransactionEntry.getVersionID())) + { + entry = paymentTransactionEntry; + break; + } + } + } + else + { + //Only when authorization notification come before we get authorization response. + LOG.info("Only when authorization notification come before we get authorization response."); + final String orderNumber = getMerchantReference(request); + if (StringUtils.isNotBlank(orderNumber)) + { + final CartModel cartExample = new CartModel(); + cartExample.setCode(orderNumber); + final List carts = getFlexibleSearchService().getModelsByExample(cartExample); + if (CollectionUtils.isNotEmpty(carts)) + { + return carts.get(0).getPaymentTransactions().get(0); + } + } + } + return (entry == null) ? null : entry.getPaymentTransaction(); + } + + protected boolean isExist(final AdyenPaymentTransactionEntryModel example) + { + try + { + getFlexibleSearchService().getModelByExample(example); + } + catch (final ModelNotFoundException e) + { + return false; + } + return true; + } + + @Override + public AdyenPaymentTransactionEntryModel createTransactionEntry(final AdyenNotificationRequest request) + { + final AdyenPaymentTransactionEntryModel entry = getModelService().create(AdyenPaymentTransactionEntryModel.class); + final PaymentTransactionModel transaction = fetchTransaction(request); + if (null == transaction) + { + return null; + } + entry.setPaymentTransaction(transaction); + if (isSeccessful(request)) + { + entry.setTransactionStatus(TransactionStatus.ACCEPTED.name()); + entry.setTransactionStatusDetails(TransactionStatusDetails.SUCCESFULL.name()); + } + else + { + entry.setTransactionStatus(TransactionStatus.ACCEPTED.name()); + entry.setTransactionStatusDetails("UNSUCCESSFULL"); + } + entry.setRequestId(getPspReference(request)); + entry.setTime(new Date()); + entry.setCurrency(transaction.getOrder().getCurrency()); + entry.setAmount(getAmount(request)); + entry.setType(getType(request)); + entry.setCode(transaction.getCode() + "-" + + ((transaction.getEntries() == null) ? "-1" : (transaction.getEntries().size() + 1) + "")); + + getModelService().saveAll(transaction, entry); + getModelService().refresh(transaction); + getModelService().refresh(entry); + return entry; + } + + protected boolean isSeccessful(final AdyenNotificationRequest request) + { + try + { + if (request.getNotificationItems().get(0).getNotificationRequestItem().isSuccess()) + { + return true; + } + } + catch (final Exception e) + { + LOG.error("get success status", e); + } + return false; + } + + protected String getPspReference(final AdyenNotificationRequest request) + { + try + { + return request.getNotificationItems().get(0).getNotificationRequestItem().getPspReference(); + } + catch (final Exception e) + { + LOG.error("get psp reference", e); + } + return null; + } + + protected String getMerchantReference(final AdyenNotificationRequest request) + { + try + { + return request.getNotificationItems().get(0).getNotificationRequestItem().getMerchantReference(); + } + catch (final Exception e) + { + LOG.error("get merchant reference", e); + } + return null; + } + + protected BigDecimal getAmount(final AdyenNotificationRequest request) + { + try + { + return new BigDecimal(((double) request.getNotificationItems().get(0).getNotificationRequestItem().getAmount() + .getValue().intValue()) / 100); + } + catch (final Exception e) + { + LOG.error("get amount", e); + } + return null; + } + + protected PaymentTransactionType getType(final AdyenNotificationRequest request) + { + try + { + final String typeStr = getEventCode2Type().get(getEventCode(request)); + for (final PaymentTransactionType type : PaymentTransactionType.values()) + { + if (typeStr.equalsIgnoreCase(type.getCode())) + { + return type; + } + } + } + catch (final Exception e) + { + LOG.error("get notification type", e); + } + return null; + } + + /** + * @param request + * @return + */ + @Override + public String getEventCode(final AdyenNotificationRequest request) + { + try + { + final String eventCode = request.getNotificationItems().get(0).getNotificationRequestItem().getEventCode(); + return eventCode; + } + catch (final Exception e) + { + LOG.error("get event code", e); + } + return null; + } + + /** + * @return the modelService + */ + public ModelService getModelService() + { + return modelService; + } + + /** + * @param modelService + * the modelService to set + */ + public void setModelService(final ModelService modelService) + { + this.modelService = modelService; + } + + /** + * @return the flexibleSearchService + */ + public FlexibleSearchService getFlexibleSearchService() + { + return flexibleSearchService; + } + + /** + * @param flexibleSearchService + * the flexibleSearchService to set + */ + public void setFlexibleSearchService(final FlexibleSearchService flexibleSearchService) + { + this.flexibleSearchService = flexibleSearchService; + } + + /** + * @return the eventCode2Type + */ + public Map getEventCode2Type() + { + return eventCode2Type; + } + + /** + * @param eventCode2Type + * the eventCode2Type to set + */ + public void setEventCode2Type(final Map eventCode2Type) + { + this.eventCode2Type = eventCode2Type; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenAuthorisedNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenAuthorisedNotificationStrategy.java new file mode 100644 index 000000000..d6e3e721c --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenAuthorisedNotificationStrategy.java @@ -0,0 +1,321 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.commerceservices.enums.SalesApplication; +import de.hybris.platform.commerceservices.externaltax.ExternalTaxesService; +import de.hybris.platform.commerceservices.order.CommerceCheckoutService; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.core.model.order.CartModel; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.core.model.order.payment.AdyenPaymentInfoModel; +import de.hybris.platform.core.model.user.AddressModel; +import de.hybris.platform.core.model.user.CustomerModel; +import de.hybris.platform.order.CalculationService; +import de.hybris.platform.order.CartService; +import de.hybris.platform.order.InvalidCartException; +import de.hybris.platform.order.OrderService; +import de.hybris.platform.order.exceptions.CalculationException; +import de.hybris.platform.payment.dto.TransactionStatus; +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.payment.model.PaymentTransactionModel; +import de.hybris.platform.promotions.PromotionsService; +import de.hybris.platform.promotions.model.PromotionResultModel; +import de.hybris.platform.servicelayer.model.ModelService; +import de.hybris.platform.servicelayer.util.ServicesUtil; + +import java.util.Date; +import java.util.HashSet; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenAuthorisedNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + private static final Logger LOG = Logger.getLogger(AdyenAuthorisedNotificationStrategy.class); + private OrderService orderService; + private ModelService modelService; + private CommerceCheckoutService commerceCheckoutService; + private CartService cartService; + private CalculationService calculationService; + private PromotionsService promotionsService; + private ExternalTaxesService externalTaxesService; + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + final AdyenPaymentTransactionEntryModel entry = super.handleNotification(request); + if (entry != null && TransactionStatus.ACCEPTED.name().equals(entry.getTransactionStatus()) + && PaymentTransactionType.AUTHORIZATION.equals(entry.getType())) + { + AbstractOrderModel abstractOrderModel = entry.getPaymentTransaction().getOrder(); + final AdyenPaymentInfoModel adyenPaymentInfoModel = (AdyenPaymentInfoModel) abstractOrderModel.getPaymentInfo(); + if (null != request.getNotificationItems() && request.getNotificationItems().size() > 0 + && null != request.getNotificationItems().get(0).getNotificationRequestItem() + && null != request.getNotificationItems().get(0).getNotificationRequestItem().getAdditionalData() + && null != request.getNotificationItems().get(0).getNotificationRequestItem().getAdditionalData().get("authCode")) + { + entry.setAdyenAuthCode(request.getNotificationItems().get(0).getNotificationRequestItem().getAdditionalData() + .get("authCode")); + modelService.save(entry); + } + if (abstractOrderModel instanceof CartModel && adyenPaymentInfoModel.isUseHPP() + && TransactionStatusDetails.SUCCESFULL.name().equals(entry.getTransactionStatusDetails())) + { + final CartModel cartModel = (CartModel) abstractOrderModel; + if (cartModel.getTotalPrice().doubleValue() == getAmount(request).doubleValue() + && cartModel.getCode().equals(getMerchantReference(request))) + { + if (StringUtils.isBlank(entry.getPaymentTransaction().getRequestId())) + { + LOG.info("Save original psp reference : " + getPspReference(request)); + final PaymentTransactionModel pt = entry.getPaymentTransaction(); + pt.setRequestId(getPspReference(request)); + getModelService().save(pt); + getModelService().refresh(pt); + } + try + { + LOG.info("HPP payment success, but Hybris haven't received Adyen HPP response, place order here."); + abstractOrderModel = placeOrder(cartModel, null); + } + catch (final InvalidCartException e) + { + LOG.error("Error placing HPP order when auth notification arrived", e); + } + afterPlaceOrder(cartModel, (OrderModel) abstractOrderModel); + } + } + + //Maybe at this moment order has not been submitted yet. + if (abstractOrderModel instanceof OrderModel) + { + this.getOrderService().submitOrder((OrderModel) abstractOrderModel); + } + try + { + adyenPaymentInfoModel.setAdyenReason(request.getNotificationItems().get(0).getNotificationRequestItem().getReason()); + adyenPaymentInfoModel.setAdyenPaymentBrand(request.getNotificationItems().get(0).getNotificationRequestItem() + .getPaymentMethod()); + modelService.save(adyenPaymentInfoModel); + } + catch (final Exception e) + { + LOG.error("Error when saving adyenPaymentInfoModel after Authorization.", e); + } + } + return entry; + + } + + public OrderModel placeOrder(final CartModel cartModel, final SalesApplication salesApplication) throws InvalidCartException + { + ServicesUtil.validateParameterNotNull(cartModel, "Cart model cannot be null"); + if (calculationService.requiresCalculation(cartModel)) + { + LOG.error(String.format("CartModel's [%s] calculated flag was false", new Object[] + { cartModel.getCode() })); + } + + final CustomerModel customer = (CustomerModel) cartModel.getUser(); + ServicesUtil.validateParameterNotNull(customer, "Customer model cannot be null"); + + final OrderModel orderModel = getOrderService().createOrderFromCart(cartModel); + if (orderModel != null) + { + orderModel.setDate(new Date()); + orderModel.setSite(cartModel.getSite()); + orderModel.setStore(cartModel.getStore()); + orderModel.setLanguage(cartModel.getSite().getDefaultLanguage()); + + if (salesApplication != null) + { + orderModel.setSalesApplication(salesApplication); + } + else + { + orderModel.setSalesApplication(SalesApplication.WEB); + } + getModelService().saveAll(new Object[] + { customer, orderModel }); + + orderModel.setAllPromotionResults(new HashSet()); + + if ((cartModel.getPaymentInfo() != null) && (cartModel.getPaymentInfo().getBillingAddress() != null)) + { + final AddressModel billingAddress = cartModel.getPaymentInfo().getBillingAddress(); + orderModel.setPaymentAddress(billingAddress); + orderModel.getPaymentInfo().setBillingAddress(getModelService().clone(billingAddress)); + getModelService().save(orderModel.getPaymentInfo()); + } + getModelService().save(orderModel); + + getPromotionsService().transferPromotionsToOrder(cartModel, orderModel, false); + try + { + getCalculationService().calculateTotals(orderModel, false); + getExternalTaxesService().calculateExternalTaxes(orderModel); + } + catch (final CalculationException ex) + { + LOG.error("Failed to calculate order [" + orderModel + "]", ex); + } + + getModelService().refresh(orderModel); + getModelService().refresh(customer); + getExternalTaxesService().clearSessionTaxDocument(); + } + else + { + throw new IllegalArgumentException(String.format("Order was not properly created from cart %s", new Object[] + { cartModel.getCode() })); + } + + return orderModel; + } + + protected void afterPlaceOrder(final CartModel cartModel, final OrderModel orderModel) + { + if (orderModel != null) + { + getModelService().remove(cartModel); + getModelService().refresh(orderModel); + } + } + + + /** + * @return the commerceCheckoutService + */ + public CommerceCheckoutService getCommerceCheckoutService() + { + return commerceCheckoutService; + } + + + + /** + * @param commerceCheckoutService + * the commerceCheckoutService to set + */ + public void setCommerceCheckoutService(final CommerceCheckoutService commerceCheckoutService) + { + this.commerceCheckoutService = commerceCheckoutService; + } + + /** + * @return the cartService + */ + public CartService getCartService() + { + return cartService; + } + + /** + * @param cartService + * the cartService to set + */ + public void setCartService(final CartService cartService) + { + this.cartService = cartService; + } + + /** + * @return the orderService + */ + public OrderService getOrderService() + { + return orderService; + } + + /** + * @param orderService + * the orderService to set + */ + public void setOrderService(final OrderService orderService) + { + this.orderService = orderService; + } + + /** + * @return the modelService + */ + @Override + public ModelService getModelService() + { + return modelService; + } + + /** + * @param modelService + * the modelService to set + */ + @Override + public void setModelService(final ModelService modelService) + { + this.modelService = modelService; + } + + /** + * @return the calculationService + */ + public CalculationService getCalculationService() + { + return calculationService; + } + + /** + * @param calculationService + * the calculationService to set + */ + public void setCalculationService(final CalculationService calculationService) + { + this.calculationService = calculationService; + } + + /** + * @return the promotionsService + */ + public PromotionsService getPromotionsService() + { + return promotionsService; + } + + /** + * @param promotionsService + * the promotionsService to set + */ + public void setPromotionsService(final PromotionsService promotionsService) + { + this.promotionsService = promotionsService; + } + + /** + * @return the externalTaxesService + */ + public ExternalTaxesService getExternalTaxesService() + { + return externalTaxesService; + } + + /** + * @param externalTaxesService + * the externalTaxesService to set + */ + public void setExternalTaxesService(final ExternalTaxesService externalTaxesService) + { + this.externalTaxesService = externalTaxesService; + } + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancelOrRefundNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancelOrRefundNotificationStrategy.java new file mode 100644 index 000000000..7a8fab2c4 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancelOrRefundNotificationStrategy.java @@ -0,0 +1,45 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.core.enums.OrderStatus; +import de.hybris.platform.core.model.order.AbstractOrderModel; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenCancelOrRefundNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + final AdyenPaymentTransactionEntryModel entry = super.handleNotification(request); + //continue to cancel order ... + + if (isSeccessful(request) && entry != null && entry.getPaymentTransaction() != null + && entry.getPaymentTransaction().getOrder() != null + && !OrderStatus.CANCELLED.equals(entry.getPaymentTransaction().getOrder().getStatus())) + { + final AbstractOrderModel order = entry.getPaymentTransaction().getOrder(); + order.setStatus(OrderStatus.CANCELLED); + getModelService().save(order); + } + else if (!isSeccessful(request) && entry != null && entry.getPaymentTransaction() != null + && entry.getPaymentTransaction().getOrder() != null + && !OrderStatus.CANCELLED.equals(entry.getPaymentTransaction().getOrder().getStatus())) + { + final AbstractOrderModel order = entry.getPaymentTransaction().getOrder(); + order.setStatus(OrderStatus.CANCEL_FAILED); + getModelService().save(order); + } + return entry; + + } +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancellationNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancellationNotificationStrategy.java new file mode 100644 index 000000000..f113972ff --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCancellationNotificationStrategy.java @@ -0,0 +1,15 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + + + +/** + * @author delli + * + */ +public class AdyenCancellationNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCaptureNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCaptureNotificationStrategy.java new file mode 100644 index 000000000..4381c7d78 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenCaptureNotificationStrategy.java @@ -0,0 +1,77 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.basecommerce.enums.ConsignmentStatus; +import de.hybris.platform.core.enums.PaymentStatus; +import de.hybris.platform.core.model.order.OrderModel; +import de.hybris.platform.ordersplitting.model.ConsignmentModel; +import de.hybris.platform.ordersplitting.model.ConsignmentProcessModel; +import de.hybris.platform.payment.dto.TransactionStatus; +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.enums.PaymentTransactionType; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.processengine.BusinessProcessService; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenCaptureNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + + private BusinessProcessService businessProcessService; + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + final AdyenPaymentTransactionEntryModel entry = super.handleNotification(request); + + if (entry != null && PaymentTransactionType.CAPTURE.equals(entry.getType()) + && TransactionStatus.ACCEPTED.name().equals(entry.getTransactionStatus()) + && TransactionStatusDetails.SUCCESFULL.name().equals(entry.getTransactionStatusDetails())) + { + final OrderModel order = (OrderModel) entry.getPaymentTransaction().getOrder(); + order.setPaymentStatus(PaymentStatus.PAID); + getModelService().save(order); + getModelService().refresh(order); + for (final ConsignmentModel consignment : order.getConsignments()) + { + consignment.setStatus(ConsignmentStatus.READY); + getModelService().save(consignment); + for (final ConsignmentProcessModel process : consignment.getConsignmentProcesses()) + { + getBusinessProcessService().triggerEvent(process.getCode() + "_WaitForCapture"); + } + } + return entry; + } + + return null; + } + + /** + * @return the businessProcessService + */ + public BusinessProcessService getBusinessProcessService() + { + return businessProcessService; + } + + /** + * @param businessProcessService + * the businessProcessService to set + */ + public void setBusinessProcessService(final BusinessProcessService businessProcessService) + { + this.businessProcessService = businessProcessService; + } + + + + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenPendingNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenPendingNotificationStrategy.java new file mode 100644 index 000000000..6140318f3 --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenPendingNotificationStrategy.java @@ -0,0 +1,29 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.payment.dto.TransactionStatusDetails; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenPendingNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + final AdyenPaymentTransactionEntryModel entry = super.handleNotification(request); + entry.setTransactionStatusDetails(TransactionStatusDetails.SUCCESFULL.name()); + getModelService().save(entry); + + return entry; + } + +} diff --git a/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenRefundNotificationStrategy.java b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenRefundNotificationStrategy.java new file mode 100644 index 000000000..4aa42466d --- /dev/null +++ b/bin/custom/adyen/adyenServices/src/com/adyen/services/strategy/impl/AdyenRefundNotificationStrategy.java @@ -0,0 +1,129 @@ +/** + * + */ +package com.adyen.services.strategy.impl; + +import de.hybris.platform.basecommerce.enums.ReturnStatus; +import de.hybris.platform.catalog.CatalogVersionService; +import de.hybris.platform.payment.model.AdyenPaymentTransactionEntryModel; +import de.hybris.platform.refund.RefundService; +import de.hybris.platform.returns.ReturnService; +import de.hybris.platform.returns.model.RefundEntryModel; +import de.hybris.platform.returns.model.ReturnEntryModel; +import de.hybris.platform.returns.model.ReturnRequestModel; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.util.CollectionUtils; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author delli + * + */ +public class AdyenRefundNotificationStrategy extends AbstractAdyenNotificationStrategy +{ + private ReturnService returnService; + private RefundService refundService; + private CatalogVersionService catalogVersionService; + + @Override + public AdyenPaymentTransactionEntryModel handleNotification(final AdyenNotificationRequest request) + { + + final AdyenPaymentTransactionEntryModel entry = super.handleNotification(request); + + if (entry != null) + { + //update refund entries + final List refunds = new ArrayList(0); + final ReturnRequestModel entryExample = new ReturnRequestModel(); + entryExample.setCode(getMerchantReference(request)); + final List returnRequests = getFlexibleSearchService().getModelsByExample(entryExample); + if (!CollectionUtils.isEmpty(returnRequests) && isSeccessful(request)) + { + for (final ReturnRequestModel returnRequestModel : returnRequests) + { + for (final ReturnEntryModel refundEntryModel : returnRequestModel.getReturnEntries()) + { + if (refundEntryModel.getStatus().getCode().equals(ReturnStatus.WAIT.getCode())) + { + refunds.add((RefundEntryModel) refundEntryModel); + } + } + } + + if (!CollectionUtils.isEmpty(refunds)) + { + getCatalogVersionService().setSessionCatalogVersion( + returnRequests.get(0).getOrder().getEntries().get(0).getProduct().getCatalogVersion().getCatalog().getId(), + "Online"); + for (final RefundEntryModel refundEntryModel : refunds) + { + refundEntryModel.setStatus(ReturnStatus.RECEIVED); + refundEntryModel.setReceivedQuantity(refundEntryModel.getExpectedQuantity()); + getModelService().save(refundEntryModel); + } + } + } + } + return entry; + } + + /** + * @return the returnService + */ + public ReturnService getReturnService() + { + return returnService; + } + + + /** + * @param returnService + * the returnService to set + */ + public void setReturnService(final ReturnService returnService) + { + this.returnService = returnService; + } + + + /** + * @return the refundService + */ + public RefundService getRefundService() + { + return refundService; + } + + + /** + * @param refundService + * the refundService to set + */ + public void setRefundService(final RefundService refundService) + { + this.refundService = refundService; + } + + /** + * @return the catalogVersionService + */ + public CatalogVersionService getCatalogVersionService() + { + return catalogVersionService; + } + + /** + * @param catalogVersionService + * the catalogVersionService to set + */ + public void setCatalogVersionService(final CatalogVersionService catalogVersionService) + { + this.catalogVersionService = catalogVersionService; + } +} diff --git a/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/AdyenJSONTest.java b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/AdyenJSONTest.java new file mode 100644 index 000000000..347834057 --- /dev/null +++ b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/AdyenJSONTest.java @@ -0,0 +1,40 @@ +/** + * + */ +package com.adyen.services.integration.impl; + +import de.hybris.bootstrap.annotations.UnitTest; + +import junit.framework.Assert; + +import org.codehaus.jackson.map.ObjectMapper; +import org.junit.Before; +import org.junit.Test; + +import com.adyen.services.integration.data.request.AdyenNotificationRequest; + + +/** + * @author Kenneth Zhou + * + */ +@UnitTest +public class AdyenJSONTest +{ + private ObjectMapper objectMapper; + private String adyenNotificationString; + + @Before + public void setUp() throws Exception + { + objectMapper = new ObjectMapper(); + adyenNotificationString = "{\"live\":\"false\",\"notificationItems\":[{\"NotificationRequestItem\":{\"amount\":{\"currency\":\"EUR\",\"value\":0},\"eventCode\":\"REPORT_AVAILABLE\",\"eventDate\":\"2015-07-15T04:50:56+02:00\",\"merchantAccountCode\":\"ScenericCOM\",\"merchantReference\":\"testMerchantRef1\",\"pspReference\":\"test_REPORT_AVAILABLE\",\"reason\":\"will contain the url to the report\",\"success\":\"true\"}}]}"; + } + + @Test + public void testJsonParser() throws Exception + { + final AdyenNotificationRequest request = objectMapper.readValue(adyenNotificationString, AdyenNotificationRequest.class); + Assert.assertNotNull(request); + } +} diff --git a/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/DefaultAdyenServiceTest.java b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/DefaultAdyenServiceTest.java new file mode 100644 index 000000000..9e45b1d2d --- /dev/null +++ b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/integration/impl/DefaultAdyenServiceTest.java @@ -0,0 +1,125 @@ +/** + * + */ +package com.adyen.services.integration.impl; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import de.hybris.bootstrap.annotations.UnitTest; +import de.hybris.platform.servicelayer.config.ConfigurationService; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; + +import junit.framework.Assert; + +import org.apache.commons.configuration.BaseConfiguration; +import org.apache.commons.configuration.Configuration; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.impl.client.DefaultHttpClient; +import org.codehaus.jackson.map.ObjectMapper; +import org.junit.Before; +import org.junit.Test; + +import com.adyen.services.integration.data.AdditionalData; +import com.adyen.services.integration.data.AmountData; +import com.adyen.services.integration.data.ContractType; +import com.adyen.services.integration.data.RecurringData; +import com.adyen.services.integration.data.request.AdyenListRecurringDetailsRequest; +import com.adyen.services.integration.data.request.AdyenPaymentRequest; +import com.adyen.services.integration.data.response.AdyenListRecurringDetailsResponse; + + +/** + * @author Kenneth Zhou + * + */ +@UnitTest +public class DefaultAdyenServiceTest +{ + + private DefaultAdyenService adyenService; + private ConfigurationService configurationService; + + private AdyenListRecurringDetailsRequest listRecurringDetailsRequest; + private RecurringData recurringData; + private ObjectMapper objectMapper; + private Configuration config; + private DefaultHttpClient httpClient; + private CredentialsProvider provider; + + private final String requestRecurringPaymentDetailsUrl = "https://pal-test.adyen.com/pal/servlet/Recurring/v12/listRecurringDetails"; + private final String authoriseUrl = "https://pal-test.adyen.com/pal/servlet/Payment/v12/authorise"; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception + { + adyenService = new DefaultAdyenService(); + configurationService = mock(ConfigurationService.class); + + provider = new BasicCredentialsProvider(); + final UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("ws@Company.Sceneric", + "#/A/xJxyD=e@7NF#7DHp#%9tW"); + provider.setCredentials(AuthScope.ANY, credentials); + httpClient = new DefaultHttpClient(); + httpClient.setCredentialsProvider(provider); + objectMapper = new ObjectMapper(); + + adyenService.setConfigurationService(configurationService); + adyenService.setObjectMapper(objectMapper); + + listRecurringDetailsRequest = new AdyenListRecurringDetailsRequest(); + recurringData = new RecurringData(); + recurringData.setContract(ContractType.RECURRING.name()); + listRecurringDetailsRequest.setMerchantAccount("ScenericCOM"); + listRecurringDetailsRequest.setShopperReference("kenneth.zhou@sceneric.com"); + listRecurringDetailsRequest.setRecurring(recurringData); + config = new BaseConfiguration(); + config.setProperty("integration.adyen.requestRecurringPaymentDetails.url", requestRecurringPaymentDetailsUrl); + config.setProperty("integration.adyen.authorise.url", authoriseUrl); + } + + @Test + public void test() + { + when(configurationService.getConfiguration()).thenReturn(config); + final AdyenListRecurringDetailsResponse response = adyenService.requestRecurringPaymentDetails(listRecurringDetailsRequest); + Assert.assertNotNull(response); + } + + @Test + public void testAuthorise() + { + when(configurationService.getConfiguration()).thenReturn(config); + + final AdyenPaymentRequest paymentRequest = new AdyenPaymentRequest(); + final AmountData amount = new AmountData(); + amount.setCurrency("EUR"); + amount.setValue(new Integer(199)); + paymentRequest.setAmount(amount); + /* number:5555444433331111 cvc:737 Expiration Month :06 Expiration Month :2016 cardHolder: John Doe */ + final AdditionalData additionalData = new AdditionalData(); + additionalData + .setCardEncryptedJson("adyenjs_0_1_2$O4HF1RYxSxBUYb+U8X3iM/e3asV1b1FvrNEh5S2eEHXOr2NWXS+cQ1oCVs3/G73tyZEYHh/1YSUEuAs16X29G2UqTF5lnAqg55XTBTQfVvMMQQaezzL/djwUEJHSGM6vDtI3Ql5GXhNEwx82wfbZELhM5tToui357cmvb0TTaPlNdOZ36JO9go5Jtt2zj57hcWkfsV4lOGq32kkOyH8MNRXp8t/pDGKoXwQrY3HWRS1HkabSRmbmgfUIkl/0XtTvZlYqiKlokdVJn89SzSK6N1oA/FL0/bbLzqPjpF4Uz4AjunLKjUNzuTfcGbXTUs1dka9FbYuxKXT9DXMyL7+eJw==$cUcMoA+Jx9CfzvD2uIrRaf/6kywY77UF7gPrNUGiLPNmJnm5AObW1jxVjrT23vVvUZQLrwmEe6p4TKyTEW4OAfQoYNhfvd5ed/IBb/f9LaKmnSyfRo+2mVd0ZlxsaGrA/LfPJVs3UKFwDPLXYGuuxG+b++oNbcmekNVSZlULrmt6drDJvU39krcWxTPzj9N6xcTM4rtRoUnaWzKr2MzaO4mCSTfkGafVkw=="); + paymentRequest.setReference("PAYMENT-" + + new SimpleDateFormat("yyyy-MM-dd").format(new Date() + "-" + UUID.randomUUID().toString())); + paymentRequest.setAdditionalData(additionalData); + paymentRequest.setShopperEmail("test@example.com"); + paymentRequest.setShopperIP("123.123.123.123"); + paymentRequest.setMerchantAccount("ScenericCOM"); + paymentRequest.setShopperReference("YourReference"); + paymentRequest.setFraudOffset(new Integer(0)); + + //final AdyenPaymentTransactionEntryModel entry = null;//= adyenService.authorise(paymentRequest); + Assert.assertNotNull(null); + } + +} diff --git a/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/jalo/AdyenServicesTest.java b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/jalo/AdyenServicesTest.java new file mode 100644 index 000000000..9ef863e24 --- /dev/null +++ b/bin/custom/adyen/adyenServices/testsrc/com/adyen/services/jalo/AdyenServicesTest.java @@ -0,0 +1,56 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services.jalo; + +import static org.junit.Assert.assertTrue; + +import de.hybris.platform.testframework.HybrisJUnit4TransactionalTest; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +/** + * JUnit Tests for the AdyenServices extension + */ +public class AdyenServicesTest extends HybrisJUnit4TransactionalTest +{ + /** Edit the local|project.properties to change logging behaviour (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenServicesTest.class.getName()); + + @Before + public void setUp() + { + // implement here code executed before each test + } + + @After + public void tearDown() + { + // implement here code executed after each test + } + + /** + * This is a sample test method. + */ + @Test + public void testAdyenServices() + { + final boolean testTrue = true; + assertTrue("true is not true", testTrue); + } +} diff --git a/bin/custom/adyen/adyenServices/web/src/com/adyen/services/AdyenServicesWebHelper.java b/bin/custom/adyen/adyenServices/web/src/com/adyen/services/AdyenServicesWebHelper.java new file mode 100644 index 000000000..e18e5b60f --- /dev/null +++ b/bin/custom/adyen/adyenServices/web/src/com/adyen/services/AdyenServicesWebHelper.java @@ -0,0 +1,32 @@ +/* + * [y] hybris Platform + * + * Copyright (c) 2000-2013 hybris AG + * All rights reserved. + * + * This software is the confidential and proprietary information of hybris + * ("Confidential Information"). You shall not disclose such Confidential + * Information and shall use it only in accordance with the terms of the + * license agreement you entered into with hybris. + * + * + */ +package com.adyen.services; + +import org.apache.log4j.Logger; + + +/** + * Simple test class to demonstrate how to include utility classes to your webmodule. + */ +public class AdyenServicesWebHelper +{ + /** Edit the local|project.properties to change logging behavior (properties log4j.*). */ + @SuppressWarnings("unused") + private static final Logger LOG = Logger.getLogger(AdyenServicesWebHelper.class.getName()); + + public static final String getTestOutput() + { + return "testoutput"; + } +} diff --git a/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/adyenServices-web-spring.xml b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/adyenServices-web-spring.xml new file mode 100644 index 000000000..33b6607ea --- /dev/null +++ b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/adyenServices-web-spring.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/classes/com/adyen/services/AdyenServicesWebHelper.class b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/classes/com/adyen/services/AdyenServicesWebHelper.class new file mode 100644 index 000000000..ad14f46c0 Binary files /dev/null and b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/classes/com/adyen/services/AdyenServicesWebHelper.class differ diff --git a/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/ibm-web-ext.xmi b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/ibm-web-ext.xmi new file mode 100644 index 000000000..4601f8e5c --- /dev/null +++ b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/ibm-web-ext.xmi @@ -0,0 +1,10 @@ + + + + + diff --git a/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/web.xml b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/web.xml new file mode 100644 index 000000000..05062bbe5 --- /dev/null +++ b/bin/custom/adyen/adyenServices/web/webroot/WEB-INF/web.xml @@ -0,0 +1,80 @@ + + + + + + adyenServices + + + index.jsp + + + + BASIC + + + + XSSFilter + de.hybris.platform.servicelayer.web.XSSFilter + + + + XSSFilter + /* + + + + characterEncodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + + adyenServicesPlatformFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + + characterEncodingFilter + /* + + + + adyenServicesPlatformFilterChain + /* + + + + + contextConfigLocation + WEB-INF/adyenServices-web-spring.xml + + + + de.hybris.platform.spring.HybrisContextLoaderListener + + + + org.springframework.web.context.request.RequestContextListener + + diff --git a/bin/custom/adyen/adyenServices/web/webroot/index.jsp b/bin/custom/adyen/adyenServices/web/webroot/index.jsp new file mode 100644 index 000000000..19fbfc215 --- /dev/null +++ b/bin/custom/adyen/adyenServices/web/webroot/index.jsp @@ -0,0 +1,7 @@ + + +

    adyenServices

    + Welcome to my extension. + + + diff --git a/bin/custom/adyen/adyencockpits/.classpath b/bin/custom/adyen/adyencockpits/.classpath new file mode 100644 index 000000000..a28fbb435 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.classpath @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/.pmd b/bin/custom/adyen/adyencockpits/.pmd new file mode 100644 index 000000000..19fd0e48c --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.pmd @@ -0,0 +1,7 @@ + + + true + ruleset.xml + false + true + diff --git a/bin/custom/adyen/adyencockpits/.project b/bin/custom/adyen/adyencockpits/.project new file mode 100644 index 000000000..57da17c4b --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.project @@ -0,0 +1,29 @@ + + + adyencockpits + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + net.sourceforge.pmd.eclipse.plugin.pmdBuilder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jdt.core.javanature + net.sourceforge.pmd.eclipse.plugin.pmdNature + + diff --git a/bin/custom/adyen/adyencockpits/.settings/org.eclipse.core.resources.prefs b/bin/custom/adyen/adyencockpits/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..e7d87e27d --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,18 @@ +#Mon Nov 28 19:03:13 CET 2011 +eclipse.preferences.version=1 +encoding//resources/localization/adyencockpits-locales_de.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_en.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_fr.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_it.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_ja.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_pt.properties=UTF-8 +encoding//resources/localization/adyencockpits-locales_zh.properties=UTF-8 +encoding//resources/adyencockpits/cockpit/localization/i3-label.properties=UTF-8 +encoding//resources/adyencockpits/cockpit/localization/i3-label_de.properties=UTF-8 +encoding//resources/adyencockpits/cockpit/localization/i3-label_fr.properties=UTF-8 +encoding//resources/adyencockpits/cockpit/localization/i3-label_ja.properties=UTF-8 +encoding//resources/adyencockpits/cscockpit/cscockpit-messages_it.properties=UTF-8 +encoding//resources/adyencockpits/cscockpit/cscockpit-messages_pt.properties=UTF-8 +encoding//resources/adyencockpits/cscockpit/cscockpit-messages_zh.properties=UTF-8 + +encoding/=UTF-8 diff --git a/bin/custom/adyen/adyencockpits/.settings/org.eclipse.jdt.core.prefs b/bin/custom/adyen/adyencockpits/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..f57c5f8f4 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Mon Jun 20 14:24:41 CEST 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/bin/custom/adyen/adyencockpits/.springBeans b/bin/custom/adyen/adyencockpits/.springBeans new file mode 100644 index 000000000..a5a61aced --- /dev/null +++ b/bin/custom/adyen/adyencockpits/.springBeans @@ -0,0 +1,15 @@ + + + 1 + + + + + + + resources/adyencockpits-spring.xml + web/webroot/WEB-INF/adyencockpits-web-spring.xml + + + + diff --git a/bin/custom/adyen/adyencockpits/buildcallbacks.xml b/bin/custom/adyen/adyencockpits/buildcallbacks.xml new file mode 100644 index 000000000..43fd56793 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/buildcallbacks.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/extensioninfo.xml b/bin/custom/adyen/adyencockpits/extensioninfo.xml new file mode 100644 index 000000000..ce40c4ca4 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/extensioninfo.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/external-dependencies.xml b/bin/custom/adyen/adyencockpits/external-dependencies.xml new file mode 100644 index 000000000..9068097e3 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/external-dependencies.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + de.hybris.platform + adyencockpits + 5.0.0.0-SNAPSHOT + + jar + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/project.properties b/bin/custom/adyen/adyencockpits/project.properties new file mode 100644 index 000000000..f51125f95 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/project.properties @@ -0,0 +1,32 @@ +# ----------------------------------------------------------------------- +# [y] hybris Platform +# +# Copyright (c) 2000-2015 hybris AG +# All rights reserved. +# +# This software is the confidential and proprietary information of hybris +# ("Confidential Information"). You shall not disclose such Confidential +# Information and shall use it only in accordance with the terms of the +# license agreement you entered into with hybris. +# +# +# ----------------------------------------------------------------------- + +# you can put key/value pairs here. +# Use Config.getParameter(..) to retrieve the values during runtime. + + +# Specifies the location of the spring context file putted automatically to the global platform application context. +adyencockpits.application-context=adyencockpits-spring.xml + +# Inject additional config into the cmscockpit +cmscockpit.additionalWebSpringConfigs.adyencockpits=classpath:/adyencockpits/cmscockpit/spring/import.xml +btgcockpit.additionalWebSpringConfigs.adyencockpits=classpath:/adyencockpits/cmscockpit/spring/import.xml + +# Inject additional config into the cscockpit +cscockpit.additionalWebSpringConfigs.adyencockpits=classpath:/adyencockpits/cscockpit/spring/import.xml + +# Inject additional config into the productcockpit +productcockpit.additionalWebSpringConfigs.adyencockpits=classpath:/adyencockpits/productcockpit/spring/import.xml + +reportcockpit.additionalWebSpringConfigs.adyencockpits=classpath:/adyencockpits/reportcockpit/spring/import.xml \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/base.xsd b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/base.xsd new file mode 100644 index 000000000..fe49733fd --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/base.xsd @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/list-view.xsd b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/list-view.xsd new file mode 100644 index 000000000..3c39d999b --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/list-view.xsd @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/listViewContentBrowser_CatalogVersion.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/listViewContentBrowser_CatalogVersion.xml new file mode 100644 index 000000000..de5ab6850 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cmsmanagergroup/listViewContentBrowser_CatalogVersion.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advanced-search.xsd b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advanced-search.xsd new file mode 100644 index 000000000..f5d47f4cc --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advanced-search.xsd @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_AbstractPage.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_AbstractPage.xml new file mode 100644 index 000000000..63642623b --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_AbstractPage.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Media.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Media.xml new file mode 100644 index 000000000..a01932fed --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Media.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Product.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Product.xml new file mode 100644 index 000000000..9f96e2766 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_Product.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_VariantProduct.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_VariantProduct.xml new file mode 100644 index 000000000..da6105767 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/advancedSearch_VariantProduct.xml @@ -0,0 +1,64 @@ + + + + + + + diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base.xsd b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base.xsd new file mode 100644 index 000000000..fe49733fd --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base.xsd @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSAction.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSAction.xml new file mode 100644 index 000000000..7ff5870ef --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSAction.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponent.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponent.xml new file mode 100644 index 000000000..7ff5870ef --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponent.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponentContainer.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponentContainer.xml new file mode 100644 index 000000000..46ed40585 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractCMSComponentContainer.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractPage.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractPage.xml new file mode 100644 index 000000000..49c142c10 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractPage.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractRestriction.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractRestriction.xml new file mode 100644 index 000000000..c81d1bb18 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_AbstractRestriction.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSActionType.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSActionType.xml new file mode 100644 index 000000000..b96999b7c --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSActionType.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSComponentType.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSComponentType.xml new file mode 100644 index 000000000..b96999b7c --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSComponentType.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSItem.xml b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSItem.xml new file mode 100644 index 000000000..f922307c5 --- /dev/null +++ b/bin/custom/adyen/adyencockpits/resources/adyencockpits-config/cockpitgroup/base_CMSItem.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + +