Shop: Base Class get_one_order etwas ausführlicher dokumentiert
authorJan Büren <jan@kivitendo.de>
Mon, 8 Nov 2021 09:00:16 +0000 (10:00 +0100)
committerJan Büren <jan@kivitendo.de>
Fri, 11 Feb 2022 14:19:56 +0000 (15:19 +0100)
SL/ShopConnector/Base.pm

index 68c39d1..cf2f9f6 100644 (file)
@@ -7,7 +7,30 @@ use Rose::Object::MakeMethods::Generic (
   scalar => [ qw(config) ],
 );
 
-sub get_one_order  { die 'get_one_order needs to be implemented' }
+sub get_one_order  {
+  die 'get_one_order needs to be implemented';
+
+  my ($self, $ordnumber) = @_;
+  my %fetched_order;
+
+  # 1. fetch the order and import it as a kivi order
+  # 2. update the order state for report
+  # 3. return a hash with either success or error state
+  my $one_order; # REST call
+
+  my $error = $self->import_data_to_shop_order($one_order);
+
+  $self->set_orderstatus($one_order->{id}, "fetched") unless $error;
+
+  return \(
+      shop_id          => $self->config->id,
+      shop_description => $self->config->description,
+      number_of_orders => $error ? 0 : 1,
+      message          => $error ? "Error: $error->{msg}"  : '',
+      error            => $error ? 1 : 0,
+    );
+}
+
 
 sub get_new_orders { die 'get_order needs to be implemented' }
 
@@ -49,7 +72,16 @@ __END__
 
 =over 4
 
-=item C<get_one_order>
+=item C<get_one_order $ordnumber>
+
+Needs a order number and fetch (one or more) orders
+which are returned by the Shop system. The function
+has to take care of getting the order including customer
+and item information to kivi.
+It has to return a hash with either the number of succesful
+imported order or within the same hash structure a error message.
+
+
 
 =item C<get_new_orders>
 
@@ -73,6 +105,11 @@ the same data structure. Details of the returning hashref:
 
 =item C<set_orderstatus>
 
+Sets the state of the order in the Shop.
+Valid values are dependant on the Shop API, common states
+are delivered, fetched, paid, in progress ...
+
+
 =back
 
 =head1 SEE ALSO